[backfire] merge r27196
[openwrt-10.03/.git] / package / firewall / files / lib / core_init.sh
index 42124b39bd47cbc85208d93349a8a7f30a9f49ee..185fffb98bcf7bd38653b6222c857df01718f626 100644 (file)
@@ -245,9 +245,17 @@ fw_load_zone() {
        if [ "$zone_masq" == 1 ]; then
                local msrc mdst
                for msrc in ${zone_masq_src:-0.0.0.0/0}; do
-                       fw_get_negation msrc '-s' "$msrc"
+                       case "$msrc" in
+                               *.*) fw_get_negation msrc '-s' "$msrc" ;;
+                               *)   fw_get_subnet4 msrc '-s' "$msrc" ;;
+                       esac
+
                        for mdst in ${zone_masq_dest:-0.0.0.0/0}; do
-                               fw_get_negation mdst '-d' "$mdst"
+                               case "$mdst" in
+                                       *.*) fw_get_negation mdst '-d' "$mdst" ;;
+                                       *)   fw_get_subnet4 mdst '-d' "$mdst" ;;
+                               esac
+
                                fw add $mode n ${chain}_nat MASQUERADE $ { $msrc $mdst }
                        done
                done