diff options
Diffstat (limited to 'testdata/root_hints.tdir/root_hints.test')
-rw-r--r-- | testdata/root_hints.tdir/root_hints.test | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/testdata/root_hints.tdir/root_hints.test b/testdata/root_hints.tdir/root_hints.test new file mode 100644 index 000000000000..6ae4ec7f4677 --- /dev/null +++ b/testdata/root_hints.tdir/root_hints.test @@ -0,0 +1,62 @@ +# #-- 06-ianaports.test --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." + +# dig 9 ? +digv=`dig -v 2>&1 | wc -l` +if test $digv -ne 1; then + echo "Dig too old. skip test" + exit 0 +fi + +eval `grep ^srcdir= $PRE/Makefile` +echo "srcdir="$srcdir + +# obtain list from compiled in settings: +grep "ROOT-SERVERS.NET." $PRE/$srcdir/iterator/iter_hints.c > curlist +echo "Current list:" +cat curlist + +result="0" + +# dig all servers and check if same +for 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 + + addr4=`dig +short $rs A` + addr6=`dig +short $rs AAAA` + + # all IP4 must be present as listed. + if test -z "$addr4" ; then + echo "$rs A is removed! It has changed!" + result="1" + fi + if grep $rs curlist | grep "$addr4" >/dev/null; then + echo "$rs is OK: A $addr4" + else + echo "$rs A now $addr4, it has changed!" + result="1" + fi + # if IP6 is "" then it must be "" as well in the compiled hints + if test -z "$addr6" ; then + if grep $rs curlist | grep ":" >/dev/null; then + echo "$rs AAAA now removed, it has changed!" + result="1" + else + echo $rs' is OK: AAAA ""' + fi + else + # root server has an IP6. + if grep $rs curlist | grep "$addr6" >/dev/null; then + echo "$rs is OK: AAAA $addr6" + else + echo "$rs AAAA now $addr6, it has changed!" + result="1" + fi + fi +done + +exit $result |