diff options
Diffstat (limited to 'package/network/ipv6/464xlat/files')
-rwxr-xr-x | package/network/ipv6/464xlat/files/464xlat.sh | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/package/network/ipv6/464xlat/files/464xlat.sh b/package/network/ipv6/464xlat/files/464xlat.sh index e5fcf7db96..c90ac1af59 100755 --- a/package/network/ipv6/464xlat/files/464xlat.sh +++ b/package/network/ipv6/464xlat/files/464xlat.sh @@ -27,7 +27,7 @@ proto_464xlat_setup() { local ip6addr ip6prefix tunlink zone json_get_vars ip6addr ip6prefix tunlink zone - [ -z "$zone" ] && zone="wan" + [ "$zone" = "-" ] && zone="" ( proto_add_host_dependency "$cfg" "::" "$tunlink" ) @@ -53,25 +53,29 @@ proto_464xlat_setup() { proto_add_ipv6_route $ip6addr 128 "" "" "" "" 128 proto_add_data - [ "$zone" != "-" ] && json_add_string zone "$zone" + [ -n "$zone" ] && json_add_string zone "$zone" json_add_array firewall + [ -z "$zone" ] && zone=$(fw3 -q network $iface 2>/dev/null) + json_add_object "" json_add_string type nat json_add_string target SNAT json_add_string family inet json_add_string snat_ip 192.0.0.1 json_close_object - json_add_object "" - json_add_string type rule - json_add_string family inet6 - json_add_string proto all - json_add_string direction in - json_add_string dest "$zone" - json_add_string src "$zone" - json_add_string src_ip $ip6addr - json_add_string target ACCEPT - json_close_object + [ -n "$zone" ] && { + json_add_object "" + json_add_string type rule + json_add_string family inet6 + json_add_string proto all + json_add_string direction in + json_add_string dest "$zone" + json_add_string src "$zone" + json_add_string src_ip $ip6addr + json_add_string target ACCEPT + json_close_object + } json_close_array proto_close_data |