2 # Blackbox tests for net ads dns async
3 # Copyright (C) 2020 Jeremy Allison <jra@samba.org>
7 Usage: test_net_ads_dns_async.sh SERVER REALM
17 samba4bindir
="$BINDIR"
18 net_tool
="$samba4bindir/net"
20 .
`dirname $0`/subunit.sh
22 # Test looking up SERVER.REALM on server give the
23 # same IP via async and non-async DNS.
27 cmd_sync
='dig @$SERVER +short -t a $SERVER.$REALM'
29 ipv4_sync
=$
(eval $cmd_sync)
30 if [ -z "$ipv4_sync" ]; then
33 cmd_sync
='dig @$SERVER +short -t aaaa $SERVER.$REALM'
35 ipv6_sync
=$
(eval $cmd_sync)
36 if [ -z "$ipv6_sync" ]; then
41 # Do the async request. This prints out info like:
43 # Async A record lookup - got 1 names for addc.ADDOM.SAMBA.EXAMPLE.COM
44 # hostname[0] = addc.ADDOM.SAMBA.EXAMPLE.COM, IPv4addr = 10.53.57.30
45 # Async AAAA record lookup - got 1 names for addc.ADDOM.SAMBA.EXAMPLE.COM
46 # hostname[0] = addc.ADDOM.SAMBA.EXAMPLE.COM, IPv6addr = fd00::5357:5f1e
48 # So we must grep and sed to extract the matching IPv4 address
50 cmd_async
='$net_tool ads dns async $SERVER.$REALM'
51 eval echo "$cmd_async"
52 out_async
=$
(eval $cmd_async)
54 # Drop everything but the IPv4 address.
55 ipv4_async
=`echo "$out_async" | grep IPv4addr | sed -e 's/^.*IPv4addr = //'`
56 ipv6_async
=`echo "$out_async" | grep IPv6addr | sed -e 's/^.*IPv6addr = //'`
58 if [ -z "$ipv4_async" -o -z "$ipv6_async" ]; then
61 if [ "$ipv4_sync" != "$ipv4_async" ]; then
62 echo "DNS lookup mismatch. Sync $ipv4_sync, async $ipv4_async"
63 echo "DNS commands output. out1=$ipv4_sync, out2=$out_async"
66 if [ "$ipv6_sync" != "$ipv6_async" ]; then
67 echo "DNS lookup mismatch. Sync $ipv6_sync, async $ipv6_async"
68 echo "DNS commands output. out1=$ipv6_sync, out2=$out_async"
74 testit
"Check async and non async DNS lookups match " test_async_dns || failed
=`expr $failed + 1`