1# #-- root_hints.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 9eval `grep ^srcdir= $PRE/Makefile` 10echo "srcdir="$srcdir 11 12# obtain list from compiled in settings: 13grep "ROOT-SERVERS.NET." $PRE/$srcdir/iterator/iter_hints.c > curlist 14echo "Current list:" 15cat curlist 16 17result="0" 18 19# dig all servers and check if same 20for 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 21 22 addr4=`dig +short $rs A` 23 addr6=`dig +short $rs AAAA` 24 25 # all IP4 must be present as listed. 26 if test -z "$addr4" ; then 27 echo "$rs A is removed! It has changed!" 28 result="1" 29 fi 30 if grep $rs curlist | grep "$addr4" >/dev/null; then 31 echo "$rs is OK: A $addr4" 32 else 33 echo "$rs A now $addr4, it has changed!" 34 result="1" 35 fi 36 # if IP6 is "" then it must be "" as well in the compiled hints 37 if test -z "$addr6" ; then 38 if grep $rs curlist | grep ":" >/dev/null; then 39 echo "$rs AAAA now removed, it has changed!" 40 result="1" 41 else 42 echo $rs' is OK: AAAA ""' 43 fi 44 else 45 # root server has an IP6. 46 if grep $rs curlist | grep "$addr6" >/dev/null; then 47 echo "$rs is OK: AAAA $addr6" 48 else 49 echo "$rs AAAA now $addr6, it has changed!" 50 result="1" 51 fi 52 fi 53done 54 55exit $result 56