aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-09-15 01:53:36 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-09-15 01:53:36 +0000
commit7a8dd63781b3e6419e4c365c6f501643859469ff (patch)
tree9ca7e640e1f3cd10f04dec23e3c5669f1395973a /package
parent016f54cd4f5a48c2b895326de2a04509fc0115d6 (diff)
downloadupstream-7a8dd63781b3e6419e4c365c6f501643859469ff.tar.gz
upstream-7a8dd63781b3e6419e4c365c6f501643859469ff.tar.bz2
upstream-7a8dd63781b3e6419e4c365c6f501643859469ff.zip
[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')
-rw-r--r--package/firewall/Makefile2
-rw-r--r--package/firewall/files/firewall.hotplug2
-rw-r--r--package/firewall/files/lib/core.sh14
3 files changed, 8 insertions, 10 deletions
diff --git a/package/firewall/Makefile b/package/firewall/Makefile
index 205f2098cb..8cf22e8348 100644
--- a/package/firewall/Makefile
+++ b/package/firewall/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=firewall
PKG_VERSION:=2
-PKG_RELEASE:=14
+PKG_RELEASE:=15
include $(INCLUDE_DIR)/package.mk
diff --git a/package/firewall/files/firewall.hotplug b/package/firewall/files/firewall.hotplug
index ac8469524b..720b34cc89 100644
--- a/package/firewall/files/firewall.hotplug
+++ b/package/firewall/files/firewall.hotplug
@@ -17,6 +17,6 @@ case "$ACTION" in
fw_configure_interface "$INTERFACE" add "$DEVICE" &
;;
ifdown)
- fw_configure_interface "$INTERFACE" del "$DEVICE" &
+ fw_configure_interface "$INTERFACE" del "$DEVICE"
;;
esac
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