From 0a66d08ffd5a6717970edc9cd8d6d56af330ccd7 Mon Sep 17 00:00:00 2001 From: datadunia Date: Thu, 30 Apr 2026 14:15:26 +0700 Subject: [PATCH] fix: resolve unbound variable in trap and support equals sign in #Access --- .opencode/01.wireguard-policy-firewall.md | 4 ++-- wg-sync-policy.sh | 16 +++++----------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.opencode/01.wireguard-policy-firewall.md b/.opencode/01.wireguard-policy-firewall.md index 93d09af..b233df4 100644 --- a/.opencode/01.wireguard-policy-firewall.md +++ b/.opencode/01.wireguard-policy-firewall.md @@ -421,7 +421,7 @@ main() { # Temporary file for atomic write local tmp_policy tmp_policy="$(mktemp /tmp/wg-policy.XXXXXX)" - trap 'rm -f "$tmp_policy" 2>/dev/null; release_lock' EXIT + trap "rm -f \"$tmp_policy\" 2>/dev/null; release_lock" EXIT echo '{"clients":{}}' > "$tmp_policy" @@ -442,7 +442,7 @@ main() { ip=c[1] } if($i ~ /^#Access/) { - sub(/^#Access[ \t]+/, "", $i) + sub(/^#Access[ \t]*=?[ \t]*/, "", $i) access=$i } } diff --git a/wg-sync-policy.sh b/wg-sync-policy.sh index 85288fe..e003948 100644 --- a/wg-sync-policy.sh +++ b/wg-sync-policy.sh @@ -35,7 +35,7 @@ main() { # Temporary file for atomic write local tmp_policy tmp_policy="$(mktemp /tmp/wg-policy.XXXXXX)" - trap 'rm -f "$tmp_policy" 2>/dev/null; release_lock' EXIT + trap "rm -f \"$tmp_policy\" 2>/dev/null; release_lock" EXIT echo '{"clients":{}}' > "$tmp_policy" @@ -52,18 +52,12 @@ main() { split($i,a," = ") gsub(/ /,"",a[2]) split(a[2],b,",") - - # First IP is the client IP split(b[1],c,"/") ip=c[1] - - # The rest of the IPs are access targets - access_arr="" - for(j=2;j<=length(b);j++) { - if(access_arr=="") access_arr = b[j] - else access_arr = access_arr "," b[j] - } - access = access_arr + } + if($i ~ /^#Access/) { + sub(/^#Access[ \t]*=?[ \t]*/, "", $i) + access=$i } } if(ip!="" && ip!="0.0.0.0" && ip!="::") {