2010-05-02 02:22:01 +08:00
|
|
|
#!/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
|
2010-05-17 20:47:14 +08:00
|
|
|
|
|
|
|
# Wait for firewall if startup is in progress
|
|
|
|
lock -w /var/lock/firewall.start
|
2010-05-02 02:22:01 +08:00
|
|
|
|
|
|
|
case "$ACTION" in
|
|
|
|
ifup)
|
2010-05-17 20:47:14 +08:00
|
|
|
fw_is_loaded && {
|
|
|
|
fw_configure_interface "$INTERFACE" add "$DEVICE" &
|
|
|
|
} || {
|
|
|
|
/etc/init.d/firewall enabled && fw_start &
|
|
|
|
}
|
|
|
|
;;
|
2010-05-02 02:22:01 +08:00
|
|
|
ifdown)
|
2010-05-17 20:47:14 +08:00
|
|
|
fw_is_loaded && fw_configure_interface "$INTERFACE" del "$DEVICE" &
|
|
|
|
;;
|
2010-05-02 02:22:01 +08:00
|
|
|
esac
|
2010-05-17 20:47:14 +08:00
|
|
|
|