From a99e653739e84fe59f264af5d68381f843c22e37 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Tue, 27 Oct 2026 14:51:19 -0700 Subject: allow 'any', 'any/', bare 'to ' in dnat rules --- wg-netns-exec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wg-netns-exec b/wg-netns-exec index ee6831e..38667bd 100755 --- a/wg-netns-exec +++ b/wg-netns-exec @@ -112,12 +112,14 @@ if ((enable_tap)); then policy accept' for saddr in "${dnat_rules[@]}"; do sport= proto= daddr= dport= - if [[ "${saddr}" =~ ^(.*)\ +to\ +(.*) ]]; then - saddr="${BASH_REMATCH[1]}" - daddr="${BASH_REMATCH[2]}" + if [[ "${saddr}" =~ ^((.*)\ +)?to\ +(.*) ]]; then + saddr="${BASH_REMATCH[2]}" + daddr="${BASH_REMATCH[3]}" fi ip_re='(([^:]*\[[^]]*\]([^:]*\[[^]]*\])*)?[^:]*)' + [[ "${saddr}" =~ ^\ *any\ *(/.*)?$ ]] && + saddr=":${BASH_REMATCH[1]}" [[ "${saddr}" =~ ^${ip_re}:?([^/]*)/?(.*) ]] saddr="${BASH_REMATCH[1]}" sport="${BASH_REMATCH[4]}" -- cgit v1.3.1