1# #-- 06-ianaports.test --# 2# source the master var file when it's there 3[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master 4# use .tpkg.var.test for in test variable passing 5[ -f .tpkg.var.test ] && source .tpkg.var.test 6 7PRE="../.." 8 9# dig 9 ? 10digv=`dig -v 2>&1 | wc -l` 11if test $digv -ne 1; then 12 echo "Dig too old. skip test" 13 exit 0 14fi 15 16eval `grep ^srcdir= $PRE/Makefile` 17echo "srcdir="$srcdir 18 19# obtain list from compiled in settings: 20grep "ROOT-SERVERS.NET." $PRE/$srcdir/iterator/iter_hints.c > curlist 21echo "Current list:" 22cat curlist 23 24result="0" 25 26# dig all servers and check if same 27for rs in A.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET.; do 28 29 addr4=`dig +short $rs A` 30 addr6=`dig +short $rs AAAA` 31 32 # all IP4 must be present as listed. 33 if test -z "$addr4" ; then 34 echo "$rs A is removed! It has changed!" 35 result="1" 36 fi 37 if grep $rs curlist | grep "$addr4" >/dev/null; then 38 echo "$rs is OK: A $addr4" 39 else 40 echo "$rs A now $addr4, it has changed!" 41 result="1" 42 fi 43 # if IP6 is "" then it must be "" as well in the compiled hints 44 if test -z "$addr6" ; then 45 if grep $rs curlist | grep ":" >/dev/null; then 46 echo "$rs AAAA now removed, it has changed!" 47 result="1" 48 else 49 echo $rs' is OK: AAAA ""' 50 fi 51 else 52 # root server has an IP6. 53 if grep $rs curlist | grep "$addr6" >/dev/null; then 54 echo "$rs is OK: AAAA $addr6" 55 else 56 echo "$rs AAAA now $addr6, it has changed!" 57 result="1" 58 fi 59 fi 60done 61 62exit $result 63