summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Donald2026-01-31 14:53:41 +0000
committerHauke Mehrtens2026-02-08 23:47:28 +0000
commit61e931db7e2e415bdfcab32390f08b676efeb5a3 (patch)
tree3c7bd95673a57fca9df25c6788e203a08696f9aa
parent5caf02eba98f1e2e004220538facd884adb00a0c (diff)
downloadopenwrt-61e931db7e2e415bdfcab32390f08b676efeb5a3.tar.gz
wireguard-tools: detect address changes at reload
Proto handler now also detects changes to - addresses Tighten also assign address portion Signed-off-by: Paul Donald <newtwen+github@gmail.com> Link: https://github.com/openwrt/openwrt/pull/21784 Signed-off-by: Robert Marko <robimarko@gmail.com> (cherry picked from commit d59b360ceeb132b5822087758910487042d41480) Link: https://github.com/openwrt/openwrt/pull/21840 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/network/utils/wireguard-tools/files/wireguard.sh22
1 files changed, 9 insertions, 13 deletions
diff --git a/package/network/utils/wireguard-tools/files/wireguard.sh b/package/network/utils/wireguard-tools/files/wireguard.sh
index f6ad967b40..ca9da81032 100644
--- a/package/network/utils/wireguard-tools/files/wireguard.sh
+++ b/package/network/utils/wireguard-tools/files/wireguard.sh
@@ -1,6 +1,7 @@
#!/bin/sh
# Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
# Licensed to the public under the Apache License 2.0.
+# shellcheck disable=SC2317
WG=/usr/bin/wg
if [ ! -x $WG ]; then
@@ -19,6 +20,8 @@ proto_wireguard_init_config() {
proto_config_add_int "listen_port"
proto_config_add_int "mtu"
proto_config_add_string "fwmark"
+ proto_config_add_string "addresses"
+
available=1
no_proto_task=1
}
@@ -173,20 +176,13 @@ proto_wireguard_setup() {
exit 1
fi
+ # Assign addresses
for address in ${addresses}; do
case "${address}" in
- *:*/*)
- proto_add_ipv6_address "${address%%/*}" "${address##*/}"
- ;;
- *.*/*)
- proto_add_ipv4_address "${address%%/*}" "${address##*/}"
- ;;
- *:*)
- proto_add_ipv6_address "${address%%/*}" "128"
- ;;
- *.*)
- proto_add_ipv4_address "${address%%/*}" "32"
- ;;
+ *:*/*) proto_add_ipv6_address "${address%%/*}" "${address##*/}" ;;
+ *.*/*) proto_add_ipv4_address "${address%%/*}" "${address##*/}" ;;
+ *:*) proto_add_ipv6_address "${address%%/*}" "128" ;;
+ *.*) proto_add_ipv4_address "${address%%/*}" "32" ;;
esac
done
@@ -194,7 +190,7 @@ proto_wireguard_setup() {
proto_add_ipv6_prefix "$prefix"
done
- # endpoint dependency
+ # Endpoint dependency tracking
if [ "${nohostroute}" != "1" ]; then
wg show "${config}" endpoints | \
sed -E 's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/' | \