net/iwconfig: Even more bashism fun.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
This commit is contained in:
Robin H. Johnson 2012-11-07 00:13:58 +00:00
parent dabd8b22ca
commit 3809eac54d

View File

@ -117,27 +117,34 @@ _ip6rd_inet_atoi()
{ {
local IFS="${IFS}." ipi=0 j=3 local IFS="${IFS}." ipi=0 j=3
for i in $1 ; do for i in $1 ; do
ipi=$(( ipi | i << 8*j-- )) # post-decrement isn't valid
ipi=$(( ipi | (i << (8*j)) ))
j=$(( j - 1 ))
done done
echo ${ipi} echo ${ipi}
} }
_ip6rd_inet_itoa() _ip6rd_inet_itoa()
{ {
local ipi=$1 local ipi=$1 bitmask v
bitmask=$(( (1 << 24)-1 ))
for i in 0 1 2 3; do for i in 0 1 2 3; do
v=$(( (ipi & ~bitmask) >> 24 ))
ipi=$(( (ipi & bitmask) << 8 ))
if [ $i != 3 ] ; then if [ $i != 3 ] ; then
printf "%d." $(( (ipi & ~((1<<24)-1)) >> 24 )) printf "%d." $v
ipi=$(( (ipi & ((1<<24)-1)) << 8))
else else
printf "%d\n" $(( (ipi & ~((1<<24)-1)) >> 24 )) printf "%d\n" $v
fi fi
done done
} }
_ip6rd_inet_get_network() _ip6rd_inet_get_network()
{ {
echo $(_ip6rd_inet_itoa $(( ($(_ip6rd_inet_atoi $1) & ((1<<$2)-1) << (32-$2) ) )) ) local a=$(_ip6rd_inet_atoi $1)
local net=$(( a & ( (1<<$2)-1 ) ))
local cidr=$(( 32 - $2 ))
echo $(_ip6rd_inet_itoa $(( (net << cidr ) )) )
} }
_ip6rd_inet_is_private_network() _ip6rd_inet_is_private_network()