X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/6b2e482b317dd94119a2a8f0b101ebd4c1c07753..d7d76ebff9e1fd64a232c60d7fd5b2f04a0c552d:/package/firewall/files/uci_firewall.sh diff --git a/package/firewall/files/uci_firewall.sh b/package/firewall/files/uci_firewall.sh index 21485cb5d..49e5ca859 100755 --- a/package/firewall/files/uci_firewall.sh +++ b/package/firewall/files/uci_firewall.sh @@ -417,7 +417,8 @@ get_interface_zones() { fw_event() { local action="$1" local interface="$2" - local ifname="$(sh -c ". /etc/functions.sh; config_load network; config_get "$interface" ifname")" + local ifname="$(sh -c ". /etc/functions.sh; include /lib/network; scan_interfaces; config_get "$interface" ifname")" + add_zone= local up [ -z "$ifname" ] && return 0 @@ -503,10 +504,15 @@ fw_init() { echo "Loading zone defaults" config_foreach fw_zone_defaults zone uci_set_state firewall core loaded 1 + config_set core loaded 1 config_foreach fw_check_notrack zone - INTERFACES="$(sh -c '. /etc/functions.sh; config_load network; config_foreach echo interface')" + INTERFACES="$(sh -c ' + . /etc/functions.sh; config_load network + echo_up() { local up; config_get_bool up "$1" up 0; [ $up = 1 ] && echo "$1"; } + config_foreach echo_up interface + ')" for interface in $INTERFACES; do - fw_addif "$interface" + fw_event ifup "$interface" done }