1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-05 05:21:32 +02:00
openwrt-xburst/package/firewall/files/20-firewall
jow 0228176586 [package] firewall: move the config_get out of the loop, no need to call it multiple times
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17581 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-09-14 15:18:48 +00:00

37 lines
699 B
Plaintext

. /lib/firewall/uci_firewall.sh
unset ZONE
config_get ifname $INTERFACE ifname
[ "$ifname" == "lo" ] && exit 0
load_zones() {
local name
local network
config_get name $1 name
config_get network $1 network
[ -z "$network" ] && network=$name
for n in $network; do
[ "$n" = "$INTERFACE" ] && ZONE="$ZONE $name"
done
}
config_foreach load_zones zone
[ -z "$ZONE" ] && exit 0
[ ifup = "$ACTION" ] && {
for z in $ZONE; do
local loaded
config_get loaded core loaded
[ -n "$loaded" ] && addif "$INTERFACE" "$ifname" "$z"
done
}
[ ifdown = "$ACTION" ] && {
local up
config_get up "$INTERFACE" up
for z in $ZONE; do
[ "$up" == "1" ] && delif "$INTERFACE" "$ifname" "$z"
done
}