X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/3d98699ef3197971484bd990d15e8b9eb0c506ce..9d43dbd716ca1c46e5c92a1ba4e56c7dbaa4ec86:/package/firewall/files/lib/core_interface.sh diff --git a/package/firewall/files/lib/core_interface.sh b/package/firewall/files/lib/core_interface.sh index f08975952..bc9eb96dd 100644 --- a/package/firewall/files/lib/core_interface.sh +++ b/package/firewall/files/lib/core_interface.sh @@ -4,7 +4,11 @@ fw__uci_state_add() { local var="$1" local item="$2" - local val="$(uci_get_state firewall core $var)" + local val=" $(uci_get_state firewall core $var) " + val="${val// $item / }" + val="${val# }" + val="${val% }" + uci_revert_state firewall core $var uci_set_state firewall core $var "${val:+$val }$item" } @@ -16,6 +20,7 @@ fw__uci_state_del() { val="${val// $item / }" val="${val# }" val="${val% }" + uci_revert_state firewall core $var uci_set_state firewall core $var "$val" } @@ -70,6 +75,9 @@ fw_configure_interface() { # Need v4 while zone is v6 */*.*) fw_log info "zone $zone does not support IPv4 address family, skipping"; return ;; + + # Strip prefix + *) mode="${mode#G}" ;; esac lock /var/run/firewall-interface.lock