[backfire] merge r27196
[openwrt-10.03/.git] / package / firewall / files / lib / fw.sh
index 16a39b6a66fbe730700734640aadb6545e71fac4..19dddef4433aee9197bd08b1dcaee162b98d8716 100644 (file)
@@ -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
+}