map: don't set default firewall zone to wan
[openwrt/staging/stintel.git] / package / network / ipv6 / map / files / map.sh
index 70dc72326c4657b375b542e7f31d9ddb7aefe1d7..6462e810ccdff55cd22003285e0976f2608224fb 100755 (executable)
@@ -33,7 +33,7 @@ proto_map_setup() {
        json_get_vars type mtu ttl tunlink zone encaplimit
        json_get_vars rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset
 
-       [ -z "$zone" ] && zone="wan"
+       [ "$zone" = "-" ] && zone=""
        [ -z "$type" ] && type="map-e"
        [ -z "$ip4prefixlen" ] && ip4prefixlen=32
 
@@ -129,7 +129,7 @@ proto_map_setup() {
 
        proto_add_ipv4_route "0.0.0.0" 0
        proto_add_data
-       [ "$zone" != "-" ] && json_add_string zone "$zone"
+       [ -n "$zone" ] && json_add_string zone "$zone"
 
        json_add_array firewall
          if [ -z "$(eval "echo \$RULE_${k}_PORTSETS")" ]; then
@@ -155,26 +155,30 @@ proto_map_setup() {
            done
          fi
          if [ "$type" = "map-t" ]; then
-               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 $(eval "echo \$RULE_${k}_IPV6ADDR")
-                       json_add_string target ACCEPT
-               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 out
-                       json_add_string dest "$zone"
-                       json_add_string src "$zone"
-                       json_add_string dest_ip $(eval "echo \$RULE_${k}_IPV6ADDR")
-                       json_add_string target ACCEPT
-               json_close_object
+               [ -z "$zone" ] && zone=$(fw3 -q network $iface 2>/dev/null)
+
+               [ -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 $(eval "echo \$RULE_${k}_IPV6ADDR")
+                               json_add_string target ACCEPT
+                       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 out
+                               json_add_string dest "$zone"
+                               json_add_string src "$zone"
+                               json_add_string dest_ip $(eval "echo \$RULE_${k}_IPV6ADDR")
+                               json_add_string target ACCEPT
+                       json_close_object
+               }
                proto_add_ipv6_route $(eval "echo \$RULE_${k}_IPV6ADDR") 128
          fi
        json_close_array