[package] firewall: implement disable_ipv6 uci option
[openwrt.git] / package / firewall / files / lib / core.sh
index bf44231..5880cd3 100644 (file)
@@ -8,14 +8,13 @@ include /lib/network
 fw_start() {
        fw_init
 
-       lock /var/lock/firewall.start
-
        FW_DEFAULTS_APPLIED=
 
        fw_is_loaded && {
                echo "firewall already loaded" >&2
                exit 1
        }
+
        uci_set_state firewall core "" firewall_state
 
        fw_clear DROP
@@ -51,8 +50,6 @@ fw_start() {
        fw_callback post core
 
        uci_set_state firewall core loaded 1
-
-       lock -u /var/lock/firewall.start
 }
 
 fw_stop() {
@@ -66,6 +63,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
 }
 
@@ -79,7 +81,7 @@ fw_reload() {
 }
 
 fw_is_loaded() {
-       local bool=$(uci -q -P /var/state get firewall.core.loaded)
+       local bool=$(uci_get_state firewall.core.loaded)
        return $((! ${bool:-0}))
 }
 
@@ -126,8 +128,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
This page took 0.037849 seconds and 4 git commands to generate.