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 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
}

View File

@ -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`"