firewall: fix a race condition preventing interfaces from being added to the firewall on boot

SVN-Revision: 19232
This commit is contained in:
Jo-Philipp Wich 2010-01-19 23:02:11 +00:00
parent c8e7192064
commit 6eae630652
2 changed files with 7 additions and 3 deletions

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=firewall
PKG_VERSION:=1
PKG_RELEASE:=9
PKG_RELEASE:=10
include $(INCLUDE_DIR)/package.mk

View file

@ -506,9 +506,13 @@ fw_init() {
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
}