diff options
Diffstat (limited to 'package/firewall/files')
-rw-r--r-- | package/firewall/files/lib/core_interface.sh | 50 |
1 files changed, 11 insertions, 39 deletions
diff --git a/package/firewall/files/lib/core_interface.sh b/package/firewall/files/lib/core_interface.sh index 5386292a48..bc9eb96dde 100644 --- a/package/firewall/files/lib/core_interface.sh +++ b/package/firewall/files/lib/core_interface.sh @@ -1,55 +1,27 @@ -# Copyright (C) 2009-2011 OpenWrt.org +# Copyright (C) 2009-2010 OpenWrt.org fw__uci_state_add() { local var="$1" local item="$2" - local list="$(uci_get_state firewall core $var)" - list=" ${list:+$list }" - - for item in $item; do - case "$list" in - "* $item *") continue;; - *) list="$list$item ";; - esac - done - - list="${list% }" - list="${list# }" - + 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 "$list" + uci_set_state firewall core $var "${val:+$val }$item" } fw__uci_state_del() { local var="$1" local item="$2" - echo "del[$item]" - - local list val - for val in $(uci_get_state firewall core "$var" | sort -u); do - list="${list:+$list }$val" - done - - echo "list[$list]" - + local val=" $(uci_get_state firewall core $var) " + val="${val// $item / }" + val="${val# }" + val="${val% }" uci_revert_state firewall core $var - - [ -n "$list" ] && { - list=" $list " - - for item in $item; do - list="${list// $item / }" - done - - list="${list# }" - list="${list% }" - - echo "list2[$list]" - - uci_set_state firewall core $var "$list" - } + uci_set_state firewall core $var "$val" } fw_configure_interface() { |