#!/bin/sh IPMETEST_HERE=. export IPMETEST_HERE ipmetest="$1" ifs="`/sbin/ifconfig -a |grep addr: |sed -e 's/^.*addr:\([0-9.]*\) .*$/\1/'`" echo "Found local interfaces:" echo "$ifs" echo mkdir control 2>/dev/null rm -f control/moreipme rm -f control/notipme fail() { echo "FAILED $*" exit 1 } # First test with no config files at all echo -n "Testing local interfaces..." for i in $ifs do [ "`$ipmetest "$i"`" = "me" ] || fail "$i" done echo "OK" echo -n "Testing implicit interfaces..." for i in 0.0.0.0 127.0.0.1 127.0.0.0 127.255.255.255 do [ "`$ipmetest "$i"`" = "me" ] || fail "$i" done echo "OK" echo -n "Testing other interfaces..." for i in 216.12.213.139 207.73.176.178 do [ "`$ipmetest "$i"`" = "not me" ] || fail "$i" done echo "OK" # Now test simple moreipme stuff. echo "10.255.255.255" >>control/moreipme echo "10.255.255.254" >>control/moreipme echo "10.0.0.0/255.255.0.0" >>control/moreipme echo -n "Testing moreipme interfaces..." for i in 10.255.255.255 10.0.0.1 10.255.255.254 10.0.0.0 10.0.255.255 do [ "`$ipmetest "$i"`" = "me" ] || fail "$i" done echo "OK" # Now mix in some notipme stuff echo "10.255.255.254" >>control/notipme echo "127.0.0.0/255.0.0.0" >>control/notipme echo "10.0.128.0/255.255.128.0" >>control/notipme echo -n "Testing notipme interfaces..." for i in 10.255.255.254 127.0.0.2 127.255.255.255 127.0.0.0 10.0.255.255 10.0.128.0 10.0.150.16 do [ "`$ipmetest "$i"`" = "not me" ] || fail "$i" done for i in $ifs 10.0.0.0 10.0.50.1 10.0.127.255 do [ "`$ipmetest "$i"`" = "me" ] || fail "$i" done echo "OK" # Now blot out local interfaces echo -n "Testing blotted out local interfaces..." echo "$ifs" >>control/notipme for i in $ifs do [ "`$ipmetest "$i"`" = "not me" ] || fail "$i" done echo "OK"