[package] firewall: run ifdown hotplug events synchronized, fixes a racecondition...
[openwrt/svn-archive/archive.git] / package / firewall / files / firewall.hotplug
index bc75e42d1d3fd1b36c10d0b6f63330c82e213545..720b34cc89155b32ddfe6820f3a1c67dfeb73d0c 100644 (file)
@@ -3,26 +3,20 @@
 # HOTPLUG_TYPE=iface, triggered by various scripts when an interface
 # is configured (ACTION=ifup) or deconfigured (ACTION=ifdown).  The
 # interface is available as INTERFACE, the real device as DEVICE.
-. /etc/functions.sh
 
 [ "$DEVICE" == "lo" ] && exit 0
 
+. /etc/functions.sh
 . /lib/firewall/core.sh
-fw_init
 
-# Wait for firewall if startup is in progress
-lock -w /var/lock/firewall.start
+fw_init
+fw_is_loaded || exit 0
 
 case "$ACTION" in
        ifup)
-               fw_is_loaded && {
-                       fw_configure_interface "$INTERFACE" add "$DEVICE" &
-               } || {
-                       /etc/init.d/firewall enabled && fw_start &
-               }
+               fw_configure_interface "$INTERFACE" add "$DEVICE" &
        ;;
        ifdown)
-               fw_is_loaded && fw_configure_interface "$INTERFACE" del "$DEVICE" &
+               fw_configure_interface "$INTERFACE" del "$DEVICE"
        ;;
 esac
-