Skip to content

Commit 7046c0c

Browse files
committed
fix(wireguard): added missing suffix to IPs (#1424)
1 parent cb5287c commit 7046c0c

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

packages/ns-api/files/misc/wireguard-migrate.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77

88
# this script is supposed to be run by the 99-ns-api.wireguard uci defaults
99

10+
import ipaddress
11+
1012
from euci import EUci
1113

1214

13-
def main():
15+
def migrate_old():
1416
e_uci = EUci()
1517
wireguard_sections = []
1618
for wg_id in e_uci.get("network"):
@@ -39,5 +41,29 @@ def main():
3941
e_uci.commit("network")
4042

4143

44+
def fix_addresses():
45+
"""Fix addresses without CIDR notation."""
46+
e_uci = EUci()
47+
for wg_id in e_uci.get("network"):
48+
if e_uci.get("network", wg_id, "proto", dtype=str, default="") == "wireguard":
49+
addresses = e_uci.get("network", wg_id, "addresses", dtype=str, default="", list=True)
50+
fixed_addresses = []
51+
for address in addresses:
52+
if "/" not in address:
53+
try:
54+
vpn_network = e_uci.get(
55+
"network", wg_id, "ns_network", dtype=str, default=""
56+
)
57+
interface_network = ipaddress.IPv4Network(vpn_network)
58+
first_address = str(list(interface_network.hosts())[0])
59+
fixed_addresses.append(first_address + "/" + str(interface_network.prefixlen))
60+
except Exception:
61+
fixed_addresses.append(address)
62+
e_uci.set("network", wg_id, "addresses", fixed_addresses)
63+
64+
e_uci.save("network")
65+
66+
4267
if __name__ == "__main__":
43-
main()
68+
migrate_old()
69+
fix_addresses()

packages/ns-api/files/ns.wireguard

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ def add_server(args):
276276
e_uci.set('network', instance, 'listen_port', args['listen_port'])
277277
interface_network = ipaddress.IPv4Network(args['network'])
278278
first_ip = str(list(interface_network.hosts())[0])
279-
e_uci.set('network', instance, 'addresses', [first_ip])
279+
e_uci.set('network', instance, 'addresses', [first_ip + '/'+ str(interface_network.prefixlen)])
280280
e_uci.set('network', instance, 'ns_network', args['network'])
281281
if 'mtu' in args:
282282
e_uci.set('network', instance, 'mtu', args['mtu'])
@@ -312,7 +312,7 @@ def edit_server(args):
312312
e_uci.set('network', args['instance'], 'listen_port', args['listen_port'])
313313
interface_network = ipaddress.IPv4Network(args['network'])
314314
first_ip = str(list(interface_network.hosts())[0])
315-
e_uci.set('network', args['instance'], 'addresses', [first_ip])
315+
e_uci.set('network', args['instance'], 'addresses', [first_ip + '/'+ str(interface_network.prefixlen)])
316316
e_uci.set('network', args['instance'], 'ns_network', args['network'])
317317
if 'mtu' in args and args['mtu'] != '':
318318
e_uci.set('network', args['instance'], 'mtu', args['mtu'])

0 commit comments

Comments
 (0)