xref: /minix3/external/bsd/bind/dist/bin/tests/system/xfer/tests.sh (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek#!/bin/sh
2*00b67f09SDavid van Moolenbroek#
3*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2005, 2007, 2011-2014  Internet Systems Consortium, Inc. ("ISC")
4*00b67f09SDavid van Moolenbroek# Copyright (C) 2000, 2001  Internet Software Consortium.
5*00b67f09SDavid van Moolenbroek#
6*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any
7*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above
8*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies.
9*00b67f09SDavid van Moolenbroek#
10*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12*00b67f09SDavid van Moolenbroek# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE.
17*00b67f09SDavid van Moolenbroek
18*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.37 2012/02/22 23:47:35 tbox Exp
19*00b67f09SDavid van Moolenbroek
20*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=..
21*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh
22*00b67f09SDavid van Moolenbroek
23*00b67f09SDavid van MoolenbroekDIGOPTS="+tcp +noadd +nosea +nostat +noquest +nocomm +nocmd"
24*00b67f09SDavid van Moolenbroek
25*00b67f09SDavid van Moolenbroekstatus=0
26*00b67f09SDavid van Moolenbroek
27*00b67f09SDavid van Moolenbroekecho "I:testing basic zone transfer functionality"
28*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS example. \
29*00b67f09SDavid van Moolenbroek	@10.53.0.2 axfr -p 5300 > dig.out.ns2 || status=1
30*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns2
31*00b67f09SDavid van Moolenbroek
32*00b67f09SDavid van Moolenbroek#
33*00b67f09SDavid van Moolenbroek# Spin to allow the zone to tranfer.
34*00b67f09SDavid van Moolenbroek#
35*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 5
36*00b67f09SDavid van Moolenbroekdo
37*00b67f09SDavid van Moolenbroektmp=0
38*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS example. \
39*00b67f09SDavid van Moolenbroek	@10.53.0.3 axfr -p 5300 > dig.out.ns3 || tmp=1
40*00b67f09SDavid van Moolenbroek	grep "^;" dig.out.ns3 > /dev/null
41*00b67f09SDavid van Moolenbroek	if test $? -ne 0 ; then break; fi
42*00b67f09SDavid van Moolenbroek	echo "I: plain zone re-transfer"
43*00b67f09SDavid van Moolenbroek	sleep 5
44*00b67f09SDavid van Moolenbroekdone
45*00b67f09SDavid van Moolenbroekif test $tmp -eq 1 ; then status=1; fi
46*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns3
47*00b67f09SDavid van Moolenbroek
48*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig1.good dig.out.ns2 || status=1
49*00b67f09SDavid van Moolenbroek
50*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig1.good dig.out.ns3 || status=1
51*00b67f09SDavid van Moolenbroek
52*00b67f09SDavid van Moolenbroekecho "I:testing TSIG signed zone transfers"
53*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS tsigzone. \
54*00b67f09SDavid van Moolenbroek    	@10.53.0.2 axfr -y tsigzone.:1234abcd8765 -p 5300 \
55*00b67f09SDavid van Moolenbroek	> dig.out.ns2 || status=1
56*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns2
57*00b67f09SDavid van Moolenbroek
58*00b67f09SDavid van Moolenbroek#
59*00b67f09SDavid van Moolenbroek# Spin to allow the zone to tranfer.
60*00b67f09SDavid van Moolenbroek#
61*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 5
62*00b67f09SDavid van Moolenbroekdo
63*00b67f09SDavid van Moolenbroektmp=0
64*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS tsigzone. \
65*00b67f09SDavid van Moolenbroek    	@10.53.0.3 axfr -y tsigzone.:1234abcd8765 -p 5300 \
66*00b67f09SDavid van Moolenbroek	> dig.out.ns3 || tmp=1
67*00b67f09SDavid van Moolenbroek	grep "^;" dig.out.ns3 > /dev/null
68*00b67f09SDavid van Moolenbroek	if test $? -ne 0 ; then break; fi
69*00b67f09SDavid van Moolenbroek	echo "I: plain zone re-transfer"
70*00b67f09SDavid van Moolenbroek	sleep 5
71*00b67f09SDavid van Moolenbroekdone
72*00b67f09SDavid van Moolenbroekif test $tmp -eq 1 ; then status=1; fi
73*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns3
74*00b67f09SDavid van Moolenbroek
75*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.ns2 dig.out.ns3 || status=1
76*00b67f09SDavid van Moolenbroek
77*00b67f09SDavid van Moolenbroekecho "I:reload servers for in preparation for ixfr-from-differences tests"
78*00b67f09SDavid van Moolenbroek
79*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reload 2>&1 | sed 's/^/I:ns1 /'
80*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 reload 2>&1 | sed 's/^/I:ns2 /'
81*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 reload 2>&1 | sed 's/^/I:ns3 /'
82*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.6 -p 9953 reload 2>&1 | sed 's/^/I:ns6 /'
83*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.7 -p 9953 reload 2>&1 | sed 's/^/I:ns7 /'
84*00b67f09SDavid van Moolenbroek
85*00b67f09SDavid van Moolenbroeksleep 2
86*00b67f09SDavid van Moolenbroek
87*00b67f09SDavid van Moolenbroekecho "I:updating master zones for ixfr-from-differences tests"
88*00b67f09SDavid van Moolenbroek
89*00b67f09SDavid van Moolenbroek$PERL -i -p -e '
90*00b67f09SDavid van Moolenbroek	s/0\.0\.0\.0/0.0.0.1/;
91*00b67f09SDavid van Moolenbroek	s/1397051952/1397051953/
92*00b67f09SDavid van Moolenbroek' ns1/slave.db
93*00b67f09SDavid van Moolenbroek
94*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reload 2>&1 | sed 's/^/I:ns1 /'
95*00b67f09SDavid van Moolenbroek
96*00b67f09SDavid van Moolenbroek$PERL -i -p -e '
97*00b67f09SDavid van Moolenbroek	s/0\.0\.0\.0/0.0.0.1/;
98*00b67f09SDavid van Moolenbroek	s/1397051952/1397051953/
99*00b67f09SDavid van Moolenbroek' ns2/example.db
100*00b67f09SDavid van Moolenbroek
101*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 reload 2>&1 | sed 's/^/I:ns2 /'
102*00b67f09SDavid van Moolenbroek
103*00b67f09SDavid van Moolenbroek$PERL -i -p -e '
104*00b67f09SDavid van Moolenbroek	s/0\.0\.0\.0/0.0.0.1/;
105*00b67f09SDavid van Moolenbroek	s/1397051952/1397051953/
106*00b67f09SDavid van Moolenbroek' ns6/master.db
107*00b67f09SDavid van Moolenbroek
108*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.6 -p 9953 reload 2>&1 | sed 's/^/I:ns6 /'
109*00b67f09SDavid van Moolenbroek
110*00b67f09SDavid van Moolenbroek$PERL -i -p -e '
111*00b67f09SDavid van Moolenbroek	s/0\.0\.0\.0/0.0.0.1/;
112*00b67f09SDavid van Moolenbroek	s/1397051952/1397051953/
113*00b67f09SDavid van Moolenbroek' ns7/master2.db
114*00b67f09SDavid van Moolenbroek
115*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.7 -p 9953 reload 2>&1 | sed 's/^/I:ns7 /'
116*00b67f09SDavid van Moolenbroek
117*00b67f09SDavid van Moolenbroeksleep 3
118*00b67f09SDavid van Moolenbroek
119*00b67f09SDavid van Moolenbroekecho "I:testing zone is dumped after successful transfer"
120*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS +noall +answer +multi @10.53.0.2 -p 5300 \
121*00b67f09SDavid van Moolenbroek	slave. soa > dig.out.ns2 || tmp=1
122*00b67f09SDavid van Moolenbroekgrep "1397051952 ; serial" dig.out.ns2 > /dev/null 2>&1 || tmp=1
123*00b67f09SDavid van Moolenbroekgrep "1397051952 ; serial" ns2/slave.db > /dev/null 2>&1 || tmp=1
124*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
125*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
126*00b67f09SDavid van Moolenbroek
127*00b67f09SDavid van Moolenbroekecho "I:testing ixfr-from-differences yes;"
128*00b67f09SDavid van Moolenbroektmp=0
129*00b67f09SDavid van Moolenbroekfor i in 0 1 2 3 4 5 6 7 8 9
130*00b67f09SDavid van Moolenbroekdo
131*00b67f09SDavid van Moolenbroek	$DIG $DIGOPTS @10.53.0.3 -p 5300 +noall +answer soa example > dig.out.soa.ns3
132*00b67f09SDavid van Moolenbroek	grep "1397051953" dig.out.soa.ns3 > /dev/null && break;
133*00b67f09SDavid van Moolenbroek	sleep 1
134*00b67f09SDavid van Moolenbroekdone
135*00b67f09SDavid van Moolenbroek
136*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS example. \
137*00b67f09SDavid van Moolenbroek	@10.53.0.3 axfr -p 5300 > dig.out.ns3 || tmp=1
138*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns3
139*00b67f09SDavid van Moolenbroek
140*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig2.good dig.out.ns3 || tmp=1
141*00b67f09SDavid van Moolenbroek
142*00b67f09SDavid van Moolenbroek# ns3 has a journal iff it received an IXFR.
143*00b67f09SDavid van Moolenbroektest -f ns3/example.bk || tmp=1
144*00b67f09SDavid van Moolenbroektest -f ns3/example.bk.jnl || tmp=1
145*00b67f09SDavid van Moolenbroek
146*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
147*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
148*00b67f09SDavid van Moolenbroek
149*00b67f09SDavid van Moolenbroekecho "I:testing ixfr-from-differences master; (master zone)"
150*00b67f09SDavid van Moolenbroektmp=0
151*00b67f09SDavid van Moolenbroek
152*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS master. \
153*00b67f09SDavid van Moolenbroek	@10.53.0.6 axfr -p 5300 > dig.out.ns6 || tmp=1
154*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns6
155*00b67f09SDavid van Moolenbroek
156*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS master. \
157*00b67f09SDavid van Moolenbroek	@10.53.0.3 axfr -p 5300 > dig.out.ns3 || tmp=1
158*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns3 && cat dig.out.ns3
159*00b67f09SDavid van Moolenbroek
160*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.ns6 dig.out.ns3 || tmp=1
161*00b67f09SDavid van Moolenbroek
162*00b67f09SDavid van Moolenbroek# ns3 has a journal iff it received an IXFR.
163*00b67f09SDavid van Moolenbroektest -f ns3/master.bk || tmp=1
164*00b67f09SDavid van Moolenbroektest -f ns3/master.bk.jnl || tmp=1
165*00b67f09SDavid van Moolenbroek
166*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
167*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
168*00b67f09SDavid van Moolenbroek
169*00b67f09SDavid van Moolenbroekecho "I:testing ixfr-from-differences master; (slave zone)"
170*00b67f09SDavid van Moolenbroektmp=0
171*00b67f09SDavid van Moolenbroek
172*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS slave. \
173*00b67f09SDavid van Moolenbroek	@10.53.0.6 axfr -p 5300 > dig.out.ns6 || tmp=1
174*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns6
175*00b67f09SDavid van Moolenbroek
176*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS slave. \
177*00b67f09SDavid van Moolenbroek	@10.53.0.1 axfr -p 5300 > dig.out.ns1 || tmp=1
178*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns1
179*00b67f09SDavid van Moolenbroek
180*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.ns6 dig.out.ns1 || tmp=1
181*00b67f09SDavid van Moolenbroek
182*00b67f09SDavid van Moolenbroek# ns6 has a journal iff it received an IXFR.
183*00b67f09SDavid van Moolenbroektest -f ns6/slave.bk || tmp=1
184*00b67f09SDavid van Moolenbroektest -f ns6/slave.bk.jnl && tmp=1
185*00b67f09SDavid van Moolenbroek
186*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
187*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
188*00b67f09SDavid van Moolenbroek
189*00b67f09SDavid van Moolenbroekecho "I:testing ixfr-from-differences slave; (master zone)"
190*00b67f09SDavid van Moolenbroektmp=0
191*00b67f09SDavid van Moolenbroek
192*00b67f09SDavid van Moolenbroek# ns7 has a journal iff it generates an IXFR.
193*00b67f09SDavid van Moolenbroektest -f ns7/master2.db || tmp=1
194*00b67f09SDavid van Moolenbroektest -f ns7/master2.db.jnl && tmp=1
195*00b67f09SDavid van Moolenbroek
196*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
197*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
198*00b67f09SDavid van Moolenbroekecho "I:testing ixfr-from-differences slave; (slave zone)"
199*00b67f09SDavid van Moolenbroektmp=0
200*00b67f09SDavid van Moolenbroek
201*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS slave. \
202*00b67f09SDavid van Moolenbroek	@10.53.0.1 axfr -p 5300 > dig.out.ns1 || tmp=1
203*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns1
204*00b67f09SDavid van Moolenbroek
205*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS slave. \
206*00b67f09SDavid van Moolenbroek	@10.53.0.7 axfr -p 5300 > dig.out.ns7 || tmp=1
207*00b67f09SDavid van Moolenbroekgrep "^;" dig.out.ns1
208*00b67f09SDavid van Moolenbroek
209*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.ns7 dig.out.ns1 || tmp=1
210*00b67f09SDavid van Moolenbroek
211*00b67f09SDavid van Moolenbroek# ns7 has a journal iff it generates an IXFR.
212*00b67f09SDavid van Moolenbroektest -f ns7/slave.bk || tmp=1
213*00b67f09SDavid van Moolenbroektest -f ns7/slave.bk.jnl || tmp=1
214*00b67f09SDavid van Moolenbroek
215*00b67f09SDavid van Moolenbroekif test $tmp != 0 ; then echo "I:failed"; fi
216*00b67f09SDavid van Moolenbroekstatus=`expr $status + $tmp`
217*00b67f09SDavid van Moolenbroek
218*00b67f09SDavid van Moolenbroekecho "I:check that a multi-message uncompressable zone transfers"
219*00b67f09SDavid van Moolenbroek$DIG axfr . -p 5300 @10.53.0.4 | grep SOA > axfr.out
220*00b67f09SDavid van Moolenbroekif test `wc -l < axfr.out` != 2
221*00b67f09SDavid van Moolenbroekthen
222*00b67f09SDavid van Moolenbroek	 echo "I:failed"
223*00b67f09SDavid van Moolenbroek	 status=`expr $status + 1`
224*00b67f09SDavid van Moolenbroekfi
225*00b67f09SDavid van Moolenbroek
226*00b67f09SDavid van Moolenbroek# now we test transfers with assorted TSIG glitches
227*00b67f09SDavid van MoolenbroekDIGCMD="$DIG $DIGOPTS @10.53.0.4 -p 5300"
228*00b67f09SDavid van MoolenbroekSENDCMD="$PERL ../send.pl 10.53.0.5 5301"
229*00b67f09SDavid van MoolenbroekRNDCCMD="$RNDC -s 10.53.0.4 -p 9953 -c ../common/rndc.conf"
230*00b67f09SDavid van Moolenbroek
231*00b67f09SDavid van Moolenbroekecho "I:testing that incorrectly signed transfers will fail..."
232*00b67f09SDavid van Moolenbroekecho "I:initial correctly-signed transfer should succeed"
233*00b67f09SDavid van Moolenbroek
234*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/goodaxfr
235*00b67f09SDavid van Moolenbroeksleep 1
236*00b67f09SDavid van Moolenbroek
237*00b67f09SDavid van Moolenbroek# Initially, ns4 is not authoritative for anything.
238*00b67f09SDavid van Moolenbroek# Now that ans is up and running with the right data, we make it
239*00b67f09SDavid van Moolenbroek# a slave for nil.
240*00b67f09SDavid van Moolenbroek
241*00b67f09SDavid van Moolenbroekcat <<EOF >>ns4/named.conf
242*00b67f09SDavid van Moolenbroekzone "nil" {
243*00b67f09SDavid van Moolenbroek	type slave;
244*00b67f09SDavid van Moolenbroek	file "nil.db";
245*00b67f09SDavid van Moolenbroek	masters { 10.53.0.5 key tsig_key; };
246*00b67f09SDavid van Moolenbroek};
247*00b67f09SDavid van MoolenbroekEOF
248*00b67f09SDavid van Moolenbroek
249*00b67f09SDavid van Moolenbroek$RNDCCMD reload | sed 's/^/I:ns4 /'
250*00b67f09SDavid van Moolenbroek
251*00b67f09SDavid van Moolenbroek
252*00b67f09SDavid van Moolenbroekfor i in 0 1 2 3 4 5 6 7 8 9
253*00b67f09SDavid van Moolenbroekdo
254*00b67f09SDavid van Moolenbroek	$DIGCMD nil. SOA > dig.out.ns4
255*00b67f09SDavid van Moolenbroek	grep SOA dig.out.ns4 > /dev/null && break
256*00b67f09SDavid van Moolenbroek	sleep 1
257*00b67f09SDavid van Moolenbroekdone
258*00b67f09SDavid van Moolenbroek
259*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'initial AXFR' >/dev/null || {
260*00b67f09SDavid van Moolenbroek    echo "I:failed"
261*00b67f09SDavid van Moolenbroek    status=1
262*00b67f09SDavid van Moolenbroek}
263*00b67f09SDavid van Moolenbroek
264*00b67f09SDavid van Moolenbroekecho "I:unsigned transfer"
265*00b67f09SDavid van Moolenbroek
266*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/unsigned
267*00b67f09SDavid van Moolenbroeksleep 1
268*00b67f09SDavid van Moolenbroek
269*00b67f09SDavid van Moolenbroek$RNDCCMD retransfer nil | sed 's/^/I:ns4 /'
270*00b67f09SDavid van Moolenbroek
271*00b67f09SDavid van Moolenbroeksleep 2
272*00b67f09SDavid van Moolenbroek
273*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'unsigned AXFR' >/dev/null && {
274*00b67f09SDavid van Moolenbroek    echo "I:failed"
275*00b67f09SDavid van Moolenbroek    status=1
276*00b67f09SDavid van Moolenbroek}
277*00b67f09SDavid van Moolenbroek
278*00b67f09SDavid van Moolenbroekecho "I:bad keydata"
279*00b67f09SDavid van Moolenbroek
280*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/badkeydata
281*00b67f09SDavid van Moolenbroeksleep 1
282*00b67f09SDavid van Moolenbroek
283*00b67f09SDavid van Moolenbroek$RNDCCMD retransfer nil | sed 's/^/I:ns4 /'
284*00b67f09SDavid van Moolenbroek
285*00b67f09SDavid van Moolenbroeksleep 2
286*00b67f09SDavid van Moolenbroek
287*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'bad keydata AXFR' >/dev/null && {
288*00b67f09SDavid van Moolenbroek    echo "I:failed"
289*00b67f09SDavid van Moolenbroek    status=1
290*00b67f09SDavid van Moolenbroek}
291*00b67f09SDavid van Moolenbroek
292*00b67f09SDavid van Moolenbroekecho "I:partially-signed transfer"
293*00b67f09SDavid van Moolenbroek
294*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/partial
295*00b67f09SDavid van Moolenbroeksleep 1
296*00b67f09SDavid van Moolenbroek
297*00b67f09SDavid van Moolenbroek$RNDCCMD retransfer nil | sed 's/^/I:ns4 /'
298*00b67f09SDavid van Moolenbroek
299*00b67f09SDavid van Moolenbroeksleep 2
300*00b67f09SDavid van Moolenbroek
301*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'partially signed AXFR' >/dev/null && {
302*00b67f09SDavid van Moolenbroek    echo "I:failed"
303*00b67f09SDavid van Moolenbroek    status=1
304*00b67f09SDavid van Moolenbroek}
305*00b67f09SDavid van Moolenbroek
306*00b67f09SDavid van Moolenbroekecho "I:unknown key"
307*00b67f09SDavid van Moolenbroek
308*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/unknownkey
309*00b67f09SDavid van Moolenbroeksleep 1
310*00b67f09SDavid van Moolenbroek
311*00b67f09SDavid van Moolenbroek$RNDCCMD retransfer nil | sed 's/^/I:ns4 /'
312*00b67f09SDavid van Moolenbroek
313*00b67f09SDavid van Moolenbroeksleep 2
314*00b67f09SDavid van Moolenbroek
315*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'unknown key AXFR' >/dev/null && {
316*00b67f09SDavid van Moolenbroek    echo "I:failed"
317*00b67f09SDavid van Moolenbroek    status=1
318*00b67f09SDavid van Moolenbroek}
319*00b67f09SDavid van Moolenbroek
320*00b67f09SDavid van Moolenbroekecho "I:incorrect key"
321*00b67f09SDavid van Moolenbroek
322*00b67f09SDavid van Moolenbroek$SENDCMD < ans5/wrongkey
323*00b67f09SDavid van Moolenbroeksleep 1
324*00b67f09SDavid van Moolenbroek
325*00b67f09SDavid van Moolenbroek$RNDCCMD retransfer nil | sed 's/^/I:ns4 /'
326*00b67f09SDavid van Moolenbroek
327*00b67f09SDavid van Moolenbroeksleep 2
328*00b67f09SDavid van Moolenbroek
329*00b67f09SDavid van Moolenbroek$DIGCMD nil. TXT | grep 'incorrect key AXFR' >/dev/null && {
330*00b67f09SDavid van Moolenbroek    echo "I:failed"
331*00b67f09SDavid van Moolenbroek    status=1
332*00b67f09SDavid van Moolenbroek}
333*00b67f09SDavid van Moolenbroek
334*00b67f09SDavid van Moolenbroekecho "I:exit status: $status"
335*00b67f09SDavid van Moolenbroekexit $status
336