Просмотр исходного кода

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

SVN-Revision: 19232
Jo-Philipp Wich 16 лет назад
Родитель
Сommit
6eae630652
2 измененных файлов с 7 добавлено и 3 удалено
  1. 1 1
      package/firewall/Makefile
  2. 6 2
      package/firewall/files/uci_firewall.sh

+ 1 - 1
package/firewall/Makefile

@@ -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
 

+ 6 - 2
package/firewall/files/uci_firewall.sh

@@ -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
 }