mirror of
https://github.com/openwrt/packages.git
synced 2025-10-24 23:04:14 +00:00
Using shorewall-lite {en|dis}able instead of completely restarting
Shorewall is much more efficient.
But it also makes sense to move the starting of Shorewall from init
to an interface hotplug event. The "lan" interface should be a good
indicator that networking it ready. Besides, Shorewall won't start
until br-lan is available.
Signed-off-by: Brian J. Murrell <brian@interlinx.bc.ca>
20 lines
517 B
Bash
20 lines
517 B
Bash
#!/bin/sh
|
|
|
|
DEVICE=${DEVICE:-$(/sbin/uci -p /var/state get network."$INTERFACE".ifname)}
|
|
|
|
case "$ACTION" in
|
|
ifup)
|
|
if [ "$INTERFACE" = "lan" ]; then
|
|
/usr/sbin/shorewall -6 -l start
|
|
elif [ "${INTERFACE:0:3}" = "wan" ] &&
|
|
[ "${INTERFACE:$((${#INTERFACE}-2)):2}" != "_6" ]; then
|
|
/etc/shorewall6-lite/state/firewall enable "$DEVICE"
|
|
fi
|
|
;;
|
|
ifdown)
|
|
if [ "${INTERFACE:0:3}" = "wan" ]; then
|
|
/etc/shorewall6-lite/state/firewall disable "$DEVICE"
|
|
fi
|
|
;;
|
|
esac
|