summaryrefslogtreecommitdiff
path: root/package/firewall/files/lib
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-09-15 01:53:36 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-09-15 01:53:36 +0000
commit5986668ca9d41f7b6aee1c9890345853e157aa6b (patch)
tree9ca7e640e1f3cd10f04dec23e3c5669f1395973a /package/firewall/files/lib
parentac32f8a93b20dbb922568f7d8f3fc9195de708a6 (diff)
[package] firewall: run ifdown hotplug events synchronized, fixes a racecondition on "ifup iface" when ifdown and ifup events are delivered with a small dealy
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23064 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/firewall/files/lib')
-rw-r--r--package/firewall/files/lib/core.sh14
1 files changed, 6 insertions, 8 deletions
diff --git a/package/firewall/files/lib/core.sh b/package/firewall/files/lib/core.sh
index 2178e0505c..c350e8f0f6 100644
--- a/package/firewall/files/lib/core.sh
+++ b/package/firewall/files/lib/core.sh
@@ -58,16 +58,14 @@ fw_stop() {
fw_callback pre stop
- local old_zones z
- config_get old_zones core zones
- for z in $old_zones; do
- local old_networks n i
- config_get old_networks core "${z}_networks"
- for n in $old_networks; do
+ local z n i
+ config_get z core zones
+ for z in $z; do
+ config_get n core "${z}_networks"
+ for n in $n; do
config_get i core "${n}_ifname"
[ -n "$i" ] && env -i ACTION=remove ZONE="$z" \
- INTERFACE="$n" DEVICE="$i" \
- /sbin/hotplug-call firewall
+ INTERFACE="$n" DEVICE="$i" /sbin/hotplug-call firewall
done
done