diff --git a/Shorewall/functions b/Shorewall/functions index ac81dd8af..a1f1ae7f0 100755 --- a/Shorewall/functions +++ b/Shorewall/functions @@ -341,22 +341,22 @@ in_subnet() # $1 = IP address, $2 = CIDR network } # -# Netmask to CIDR +# Netmask to VLSM # -ip_cidr() { +ip_vlsm() { local mask=`decodeaddr $1` - local cidr=0 + local vlsm=0 local x=$(( 128 $LEFTSHIFT 24 )) while [ $(( $x & $mask )) -ne 0 ]; do [ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Don't Ask... - cidr=$(($cidr + 1)) + vlsm=$(($vlsm + 1)) done if [ $(( $mask & 2147483647)) -ne 0 ]; then echo "Invalid net mask: $1" >&2 else - echo $cidr + echo $vlsm fi } diff --git a/Shorewall/shorewall b/Shorewall/shorewall index 7aa74bbcc..399f77352 100755 --- a/Shorewall/shorewall +++ b/Shorewall/shorewall @@ -877,18 +877,18 @@ case "$1" in ipcalc) if [ $# -eq 2 ]; then address=${2%/*} - cidr=${2#*/} + vlsm=${2#*/} elif [ $# -eq 3 ]; then address=$2 - cidr=`ip_cidr $3` + vlsm=`ip_vlsm $3` else usage 1 fi - [ -z "$cidr" ] && exit 2 - [ "x$address" = "x$cidr" ] && usage 2 + [ -z "$vlsm" ] && exit 2 + [ "x$address" = "x$vlsm" ] && usage 2 - address=$address/$cidr + address=$address/$vlsm echo " CIDR=$address" temp=`ip_netmask $address`; echo " NETMASK=`encodeaddr $temp`"