summaryrefslogtreecommitdiffstats
path: root/package/firewall
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
commit7557011cb170afb8f737c19b1e3b30290428edfd (patch)
treed645990ddb4231fade3052a88767496beadb641d /package/firewall
parent1fe50da4bb3a207aff8f8d792d39a11f854edf13 (diff)
downloadopenwrt-7557011cb170afb8f737c19b1e3b30290428edfd.tar.gz
openwrt-7557011cb170afb8f737c19b1e3b30290428edfd.tar.bz2
openwrt-7557011cb170afb8f737c19b1e3b30290428edfd.zip
firewall: run ifdown hotplug events synchronized, fixes a racecondition on "ifup iface" when ifdown and ifup events are delivered with a small dealy
SVN-Revision: 23064
Diffstat (limited to 'package/firewall')
-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