Rename ip_cidr() to ip_vlsm()

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@633 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2003-07-05 17:23:53 +00:00
parent 4f6f76ec72
commit 134f5db118
2 changed files with 10 additions and 10 deletions

View File

@ -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 mask=`decodeaddr $1`
local cidr=0 local vlsm=0
local x=$(( 128 $LEFTSHIFT 24 )) local x=$(( 128 $LEFTSHIFT 24 ))
while [ $(( $x & $mask )) -ne 0 ]; do while [ $(( $x & $mask )) -ne 0 ]; do
[ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Don't Ask... [ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Don't Ask...
cidr=$(($cidr + 1)) vlsm=$(($vlsm + 1))
done done
if [ $(( $mask & 2147483647)) -ne 0 ]; then if [ $(( $mask & 2147483647)) -ne 0 ]; then
echo "Invalid net mask: $1" >&2 echo "Invalid net mask: $1" >&2
else else
echo $cidr echo $vlsm
fi fi
} }

View File

@ -877,18 +877,18 @@ case "$1" in
ipcalc) ipcalc)
if [ $# -eq 2 ]; then if [ $# -eq 2 ]; then
address=${2%/*} address=${2%/*}
cidr=${2#*/} vlsm=${2#*/}
elif [ $# -eq 3 ]; then elif [ $# -eq 3 ]; then
address=$2 address=$2
cidr=`ip_cidr $3` vlsm=`ip_vlsm $3`
else else
usage 1 usage 1
fi fi
[ -z "$cidr" ] && exit 2 [ -z "$vlsm" ] && exit 2
[ "x$address" = "x$cidr" ] && usage 2 [ "x$address" = "x$vlsm" ] && usage 2
address=$address/$cidr address=$address/$vlsm
echo " CIDR=$address" echo " CIDR=$address"
temp=`ip_netmask $address`; echo " NETMASK=`encodeaddr $temp`" temp=`ip_netmask $address`; echo " NETMASK=`encodeaddr $temp`"