X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Ffirewall%2Ffiles%2Flib%2Ffw.sh;fp=package%2Ffirewall%2Ffiles%2Flib%2Ffw.sh;h=19dddef4433aee9197bd08b1dcaee162b98d8716;hb=2c4bf4b19f72c067cac60883f00153fd5fc3b8f6;hp=16a39b6a66fbe730700734640aadb6545e71fac4;hpb=6660a9c4fcec3f57d665d08802b1ae59494482a5;p=openwrt-10.03%2F.git diff --git a/package/firewall/files/lib/fw.sh b/package/firewall/files/lib/fw.sh index 16a39b6a6..19dddef44 100644 --- a/package/firewall/files/lib/fw.sh +++ b/package/firewall/files/lib/fw.sh @@ -227,3 +227,20 @@ fw_get_negation() { export -n -- "$_var=! $_flag ${_ipaddr#!}" || \ export -n -- "$_var=${_ipaddr:+$_flag $_ipaddr}" } + +fw_get_subnet4() { + local _var="$1" + local _flag="$2" + local _name="$3" + + local _ipaddr="$(uci_get_state network "${_name#!}" ipaddr)" + local _netmask="$(uci_get_state network "${_name#!}" netmask)" + + case "$_ipaddr" in + *.*.*.*) + [ "${_name#!}" != "$_name" ] && \ + export -n -- "$_var=! $_flag $_ipaddr/${_netmask:-255.255.255.255}" || \ + export -n -- "$_var=$_flag $_ipaddr/${_netmask:-255.255.255.255}" + ;; + esac +}