mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-08-25 15:20:15 +03:00
- defer firewall start until the first interface is brought up by hotplug, fixes race conditions on slow devices - create a file lock during firewall start and wait for it in hotplug events, prevents race conditions between start and addif - start firewall actions in background from hotplug handler since the firewall itself fires further hotplug events which results in a deadlock if not forked off - get loaded state direcly from the uci binary since updated value is not recognized by config_get after uci_set_state - bump package revision to r2 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21486 3c298f89-4303-0410-b956-a3cf2f4a3e73
29 lines
692 B
Bash
29 lines
692 B
Bash
#!/bin/sh
|
|
# This script is executed as part of the hotplug event with
|
|
# 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
|
|
|
|
. /lib/firewall/core.sh
|
|
fw_init
|
|
|
|
# Wait for firewall if startup is in progress
|
|
lock -w /var/lock/firewall.start
|
|
|
|
case "$ACTION" in
|
|
ifup)
|
|
fw_is_loaded && {
|
|
fw_configure_interface "$INTERFACE" add "$DEVICE" &
|
|
} || {
|
|
/etc/init.d/firewall enabled && fw_start &
|
|
}
|
|
;;
|
|
ifdown)
|
|
fw_is_loaded && fw_configure_interface "$INTERFACE" del "$DEVICE" &
|
|
;;
|
|
esac
|
|
|