diff options
| author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-05-17 17:20:37 +0000 | 
|---|---|---|
| committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-05-17 17:20:37 +0000 | 
| commit | 15b63637b4acc1f474148c160cda9f07be351dd0 (patch) | |
| tree | 78284a64d5bc464b63484993183155cd0a12d7eb | |
| parent | 5acb7ec58a5220ac99bbc6ca274bc698191fff49 (diff) | |
[package] firewall: properly clear hooks in fw_stop() to prevent extensions from being called twice after fw_restart()
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21488 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | package/firewall/files/lib/core.sh | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/package/firewall/files/lib/core.sh b/package/firewall/files/lib/core.sh index bf44231fb..f37b1e696 100644 --- a/package/firewall/files/lib/core.sh +++ b/package/firewall/files/lib/core.sh @@ -66,6 +66,11 @@ fw_stop() {  	uci_revert_state firewall  	config_clear + +	local h +	for h in $FW_HOOKS; do unset $h; done + +	unset FW_HOOKS  	unset FW_INITIALIZED  } @@ -126,8 +131,10 @@ fw_init() {  		. $file  		for hk in $hooks; do  			for pp in pre post; do -				type ${lib}_${pp}_${hk}_cb >/dev/null && +				type ${lib}_${pp}_${hk}_cb >/dev/null && {  					append FW_CB_${pp}_${hk} ${lib} +					append FW_HOOKS FW_CB_${pp}_${hk} +				}  			done  		done  	done | 
