diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-01-16 17:39:03 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-01-16 17:39:03 +0000 |
commit | 5b58a8db1f5d8ce38d7816688d68b6c7d3b55f99 (patch) | |
tree | 12349a592657a2e0b820f6f4232d49d14b7881ff /package/firewall/files/20-firewall | |
parent | 5ebc074df40fcfceb444bb4406d2f935d4476ebe (diff) | |
download | upstream-5b58a8db1f5d8ce38d7816688d68b6c7d3b55f99.tar.gz upstream-5b58a8db1f5d8ce38d7816688d68b6c7d3b55f99.tar.bz2 upstream-5b58a8db1f5d8ce38d7816688d68b6c7d3b55f99.zip |
firewall: allow multiple interfaces to be part of one zone, fix the sanity checks for that
SVN-Revision: 14058
Diffstat (limited to 'package/firewall/files/20-firewall')
-rw-r--r-- | package/firewall/files/20-firewall | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/package/firewall/files/20-firewall b/package/firewall/files/20-firewall index 126fb9bad0..38fbb94418 100644 --- a/package/firewall/files/20-firewall +++ b/package/firewall/files/20-firewall @@ -1,8 +1,8 @@ . /lib/firewall/uci_firewall.sh unset ZONE config_get ifname $INTERFACE ifname -INTERFACE=$ifname -[ "$INTERFACE" == "lo" ] && exit 0 +[ "$ifname" == "lo" ] && exit 0 + load_zones() { local name local network @@ -10,11 +10,7 @@ load_zones() { config_get network $1 network [ -z "$network" ] && network=$name for n in $network; do - local ifname - config_get ifname $n ifname - list_contains ifname $INTERFACE && { - list_contains ZONE $name || ZONE="$ZONE $name" - } + [ "$n" = "$INTERFACE" ] && ZONE="$ZONE $name" done } @@ -26,7 +22,7 @@ config_foreach load_zones zone for z in $ZONE; do local loaded config_get loaded core loaded - [ -n "$loaded" ] && addif $INTERFACE $z + [ -n "$loaded" ] && addif "$INTERFACE" "$ifname" "$z" done } @@ -34,6 +30,6 @@ config_foreach load_zones zone for z in $ZONE; do local up config_get up $z up - [ "$up" == "1" ] && delif $INTERFACE $z + [ "$up" == "1" ] && delif "$INTERFACE" "$ifname" "$z" done } |