Changeset 27618


Ignore:
Timestamp:
2011-07-15T17:03:57+02:00 (7 years ago)
Author:
jow
Message:

[package] firewall: rework state variable handling, use uci_toggle_state() where applicable and properly handle duplicates in add and del state helpers (#9152, #9710)

Location:
trunk/package/firewall
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/firewall/Makefile

    r27519 r27618  
    1010 
    1111PKG_VERSION:=2 
    12 PKG_RELEASE:=30 
     12PKG_RELEASE:=31 
    1313 
    1414include $(INCLUDE_DIR)/package.mk 
  • trunk/package/firewall/files/lib/core_interface.sh

    r26806 r27618  
    1 # Copyright (C) 2009-2010 OpenWrt.org 
     1# Copyright (C) 2009-2011 OpenWrt.org 
    22 
    33fw__uci_state_add() { 
     
    55        local item="$2" 
    66 
    7         local val=" $(uci_get_state firewall core $var) " 
    8         val="${val// $item / }" 
    9         val="${val# }" 
    10         val="${val% }" 
    11         uci_revert_state firewall core $var 
    12         uci_set_state firewall core $var "${val:+$val }$item" 
     7        local val="$(uci_get_state firewall core $var)" 
     8        local e1; for e1 in $item; do 
     9                local e2; for e2 in $val; do 
     10                        [ "$e1" = "$e2" ] && e1="" 
     11                done 
     12                val="${val:+$val${e1:+ }}$e1" 
     13        done 
     14 
     15        uci_toggle_state $var "$val" 
    1316} 
    1417 
     
    1720        local item="$2" 
    1821 
    19         local val=" $(uci_get_state firewall core $var) " 
    20         val="${val// $item / }" 
    21         val="${val# }" 
    22         val="${val% }" 
    23         uci_revert_state firewall core $var 
    24         uci_set_state firewall core $var "$val" 
     22        local rest="" 
     23        local val="$(uci_get_state firewall core $var)" 
     24        local e1; for e1 in $val; do 
     25                local e2; for e2 in $item; do 
     26                        [ "$e1" = "$e2" ] && e1="" 
     27                done 
     28                rest="${rest:+$rest${e1:+ }}$e1" 
     29        done 
     30 
     31        uci_toggle_state $var "$val" 
    2532} 
    2633 
     
    155162                fw_callback post interface 
    156163 
    157                 uci_set_state firewall core "${iface}_aliases" "$aliases" 
     164                uci_toggle_state firewall core "${iface}_aliases" "$aliases" 
    158165        } || { 
    159166                local subnets= 
     
    162169 
    163170                config_set core "${iface}_subnets" "$subnets" 
    164                 uci_set_state firewall core "${iface}_subnets" "$subnets" 
     171                uci_toggle_state firewall core "${iface}_subnets" "$subnets" 
    165172        } 
    166173 
     
    181188        config_foreach load_zone zone 
    182189 
    183         uci_set_state firewall core "${iface}_zone" "$new_zones" 
    184         uci_set_state firewall core "${iface}_ifname" "$ifname" 
     190        uci_toggle_state firewall core "${iface}_zone" "$new_zones" 
     191        uci_toggle_state firewall core "${iface}_ifname" "$ifname" 
    185192} 
    186193 
Note: See TracChangeset for help on using the changeset viewer.