xref: /netbsd-src/external/bsd/unbound/dist/testdata/root_hints.tdir/root_hints.test (revision 82d56013d7b633d116a93943de88e08335357a7c)
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