summaryrefslogtreecommitdiff
path: root/src/conf_mode/interfaces_wireguard.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-04-22 16:31:09 +0200
committerChristian Breunig <christian@breunig.cc>2025-04-28 22:10:08 +0200
commitcbb6c944fea616547cec43f7f1ed6ea3cc4beb54 (patch)
tree45f62ef4cd67255bc3529363a7b27193d758cbcc /src/conf_mode/interfaces_wireguard.py
parent5490006e7ad81908540c8bf0fef80798f95fe77d (diff)
downloadvyos-1x-cbb6c944fea616547cec43f7f1ed6ea3cc4beb54.tar.gz
vyos-1x-cbb6c944fea616547cec43f7f1ed6ea3cc4beb54.zip
vyos.utils: T7122: fix IPv6 support in check_port_availability()
Commit 4523e9c897b3 ("wireguard: T3763: Added check for listening port availability") added a function to check if a port is free to use or already occupied by a different running service. This has been done by trying to bind a socket to said given port. Unfortunately there is no support for IPv6 address-fdamily in both socketserver.TCPServer or socketserver.UDPServer. This must be done manually by deriving TCPServer and setting self.address_family for IPv6. The new implementation gets rid of both TCPServer and UDPServer and replaces it with a simple socket binding to a given IPv4/IPv6 address or any interface/ address if unspecified. In addition build time tests are added for the function to check for proper behavior during build time of vyos-1x.
Diffstat (limited to 'src/conf_mode/interfaces_wireguard.py')
-rwxr-xr-xsrc/conf_mode/interfaces_wireguard.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/conf_mode/interfaces_wireguard.py b/src/conf_mode/interfaces_wireguard.py
index 192937dba..3ca6ecdca 100755
--- a/src/conf_mode/interfaces_wireguard.py
+++ b/src/conf_mode/interfaces_wireguard.py
@@ -97,7 +97,7 @@ def verify(wireguard):
if 'port' in wireguard and 'port_changed' in wireguard:
listen_port = int(wireguard['port'])
- if check_port_availability('0.0.0.0', listen_port, 'udp') is not True:
+ if check_port_availability(None, listen_port, protocol='udp') is not True:
raise ConfigError(f'UDP port {listen_port} is busy or unavailable and '
'cannot be used for the interface!')