#!/bin/sh
cleandig delegate1.test.dyndns ANY hidesoadetails
+mysqldiff
cleannsupdate <<!
server $nameserver $port
zone test.dyndns
update add delegate1.test.dyndns 3600 NS ns1.delegate1.test.dyndns
update add delegate1.test.dyndns 3600 NS ns2.delegate1.test.dyndns
-update add ns1.delegate1.test.dyndns 3600 A 192.168.0.1
-update add ns2.delegate1.test.dyndns 3600 A 192.168.0.2
+update add ns1.delegate1.test.dyndns 3600 A 127.0.0.1
+update add ns2.delegate1.test.dyndns 3600 A 127.0.0.1
send
answer
!
cleandig delegate1.test.dyndns ANY
+mysqldiff 1 'Check delegate1 added correctly'
cleannsupdate <<!
server $nameserver $port
zone test.dyndns
-update add ns1.delegate2.test.dyndns 3600 A 192.168.0.3
-update add ns2.delegate2.test.dyndns 3600 A 192.168.0.4
+update add ns1.delegate2.test.dyndns 3600 A 127.0.0.1
+update add ns2.delegate2.test.dyndns 3600 A 127.0.0.1
update add delegate2.test.dyndns 3600 NS ns1.delegate2.test.dyndns
update add delegate2.test.dyndns 3600 NS ns2.example.com
send
!
cleandig delegate2.test.dyndns ANY
+mysqldiff 2 'Check delegate2 added correctly'
cleannsupdate <<!
server $nameserver $port
cleandig ns2.delegate1.test.dyndns ANY
cleandig ns1.delegate2.test.dyndns ANY
cleandig ns2.delegate2.test.dyndns ANY
+mysqldiff 3 'check delegate delete'
cleannsupdate <<!
server $nameserver $port
cleandig ns2.delegate1.test.dyndns ANY hidesoadetails
cleandig ns1.delegate2.test.dyndns ANY hidesoadetails
cleandig ns2.delegate2.test.dyndns ANY hidesoadetails
+mysqldiff 4 'Check if glue records are deleted and zone back to how we started'
\ No newline at end of file
1 delegate1.test.dyndns. IN NS 3600 ns1.delegate1.test.dyndns.
1 delegate1.test.dyndns. IN NS 3600 ns2.delegate1.test.dyndns.
-2 ns1.delegate1.test.dyndns. IN A 3600 192.168.0.1
-2 ns2.delegate1.test.dyndns. IN A 3600 192.168.0.2
+2 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Check delegate1 added correctly
+--- Start: diff start step.1 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600
+--- End: diff start step.1 ---
+
Answer:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
1 delegate2.test.dyndns. IN NS 3600 ns1.delegate2.test.dyndns.
1 delegate2.test.dyndns. IN NS 3600 ns2.example.com.
-2 ns1.delegate2.test.dyndns. IN A 3600 192.168.0.3
+2 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
2 ns2.example.com. IN A 120 192.168.1.2
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+Check delegate2 added correctly
+--- Start: diff start step.2 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600
+> delegate2.test.dyndns NS 0 ns1.delegate2.test.dyndns 3600
+> delegate2.test.dyndns NS 0 ns2.example.com 3600
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600
+--- End: diff start step.2 ---
+
Answer:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
-0 ns1.delegate1.test.dyndns. IN A 3600 192.168.0.1
+0 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
-0 ns2.delegate1.test.dyndns. IN A 3600 192.168.0.2
+0 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
-0 ns1.delegate2.test.dyndns. IN A 3600 192.168.0.3
+0 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
-0 ns2.delegate2.test.dyndns. IN A 3600 192.168.0.4
+0 ns2.delegate2.test.dyndns. IN A 3600 127.0.0.1
Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+check delegate delete
+--- Start: diff start step.3 ---
+> delegate1.test.dyndns NULL NULL NULL NULL
+> delegate2.test.dyndns NULL NULL NULL NULL
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600
+--- End: diff start step.3 ---
+
Answer:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+Check if glue records are deleted and zone back to how we started
+--- Start: diff start step.4 ---
+no difference
+--- End: diff start step.4 ---
+
--- /dev/null
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate1.test.dyndns. IN NS 3600 ns1.delegate1.test.dyndns.
+1 delegate1.test.dyndns. IN NS 3600 ns2.delegate1.test.dyndns.
+2 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Check delegate1 added correctly
+--- Start: diff start step.1 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 'delegate1' 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 'delegate1' 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.1 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate2.test.dyndns. IN NS 3600 ns1.delegate2.test.dyndns.
+1 delegate2.test.dyndns. IN NS 3600 ns2.example.com.
+2 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.example.com. IN A 120 192.168.1.2
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+Check delegate2 added correctly
+--- Start: diff start step.2 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 'delegate1' 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 'delegate1' 0
+> delegate2.test.dyndns NS 0 ns1.delegate2.test.dyndns 3600 'delegate2' 0
+> delegate2.test.dyndns NS 0 ns2.example.com 3600 'delegate2' 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.2 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+0 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+0 ns2.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+check delegate delete
+--- Start: diff start step.3 ---
+> delegate1.test.dyndns NULL NULL NULL NULL NULL 1
+> delegate2.test.dyndns NULL NULL NULL NULL NULL 1
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 'delegate1 ns1' 1
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 'delegate2 ns1' 1
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 'delegate1 ns2' 1
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 'delegate2 ns2' 1
+--- End: diff start step.3 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+Check if glue records are deleted and zone back to how we started
+--- Start: diff start step.4 ---
+no difference
+--- End: diff start step.4 ---
+
--- /dev/null
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate1.test.dyndns. IN NS 3600 ns1.delegate1.test.dyndns.
+1 delegate1.test.dyndns. IN NS 3600 ns2.delegate1.test.dyndns.
+2 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Check delegate1 added correctly
+--- Start: diff start step.1 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 NULL 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 NULL 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.1 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate2.test.dyndns. IN NS 3600 ns1.delegate2.test.dyndns.
+1 delegate2.test.dyndns. IN NS 3600 ns2.example.com.
+2 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.example.com. IN A 120 192.168.1.2
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+Check delegate2 added correctly
+--- Start: diff start step.2 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 NULL 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 NULL 0
+> delegate2.test.dyndns NS 0 ns1.delegate2.test.dyndns 3600 NULL 0
+> delegate2.test.dyndns NS 0 ns2.example.com 3600 NULL 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.2 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+0 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+0 ns2.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+check delegate delete
+--- Start: diff start step.3 ---
+> delegate1.test.dyndns NULL NULL NULL NULL '' 1
+> delegate2.test.dyndns NULL NULL NULL NULL '' 1
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 '' 1
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 '' 1
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 '' 1
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 '' 1
+--- End: diff start step.3 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+Check if glue records are deleted and zone back to how we started
+--- Start: diff start step.4 ---
+no difference
+--- End: diff start step.4 ---
+
--- /dev/null
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate1.test.dyndns. IN NS 3600 ns1.delegate1.test.dyndns.
+1 delegate1.test.dyndns. IN NS 3600 ns2.delegate1.test.dyndns.
+2 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Check delegate1 added correctly
+--- Start: diff start step.1 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.1 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate2.test.dyndns. IN NS 3600 ns1.delegate2.test.dyndns.
+1 delegate2.test.dyndns. IN NS 3600 ns2.example.com.
+2 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.example.com. IN A 120 192.168.1.2
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+Check delegate2 added correctly
+--- Start: diff start step.2 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 0
+> delegate2.test.dyndns NS 0 ns1.delegate2.test.dyndns 3600 'hpnrghdi20c5ikiegdmlcknaqu9a3bg0' 0
+> delegate2.test.dyndns NS 0 ns2.example.com 3600 'hpnrghdi20c5ikiegdmlcknaqu9a3bg0' 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.2 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+0 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+0 ns2.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+check delegate delete
+--- Start: diff start step.3 ---
+> delegate1.test.dyndns NULL NULL NULL NULL 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 1
+> delegate2.test.dyndns NULL NULL NULL NULL 'hpnrghdi20c5ikiegdmlcknaqu9a3bg0' 1
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 'rcogol03mg1pg3u4338eo0nvvh6bs567' 1
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 'asm440u7p2im2slo6iqo92vfp6jtopa0' 1
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 'oshpf39sqa4j1ciudbbvtb5dkrijnpss' 1
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 'rcd0fo052s6a41ao8ue0b43e1mhv50ds' 1
+--- End: diff start step.3 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+Check if glue records are deleted and zone back to how we started
+--- Start: diff start step.4 ---
+no difference
+--- End: diff start step.4 ---
+
--- /dev/null
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate1.test.dyndns. IN NS 3600 ns1.delegate1.test.dyndns.
+1 delegate1.test.dyndns. IN NS 3600 ns2.delegate1.test.dyndns.
+2 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+Check delegate1 added correctly
+--- Start: diff start step.1 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 NULL 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 NULL 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.1 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 delegate2.test.dyndns. IN NS 3600 ns1.delegate2.test.dyndns.
+1 delegate2.test.dyndns. IN NS 3600 ns2.example.com.
+2 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+2 ns2.example.com. IN A 120 192.168.1.2
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+Check delegate2 added correctly
+--- Start: diff start step.2 ---
+> delegate1.test.dyndns NS 0 ns1.delegate1.test.dyndns 3600 NULL 0
+> delegate1.test.dyndns NS 0 ns2.delegate1.test.dyndns 3600 NULL 0
+> delegate2.test.dyndns NS 0 ns1.delegate2.test.dyndns 3600 NULL 0
+> delegate2.test.dyndns NS 0 ns2.example.com 3600 NULL 0
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 NULL 0
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 NULL 0
+--- End: diff start step.2 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+0 ns2.delegate1.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+0 ns1.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+0 ns2.delegate2.test.dyndns. IN A 3600 127.0.0.1
+Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+check delegate delete
+--- Start: diff start step.3 ---
+> delegate1.test.dyndns NULL NULL NULL NULL 'h4tlip64juuiun7hbl0bsvqkkshh3pkj' 1
+> delegate2.test.dyndns NULL NULL NULL NULL 'hpnrghdi20c5ikiegdmlcknaqu9a3bg0' 1
+> ns1.delegate1.test.dyndns A 0 127.0.0.1 3600 'rcogol03mg1pg3u4338eo0nvvh6bs567' 1
+> ns1.delegate2.test.dyndns A 0 127.0.0.1 3600 'asm440u7p2im2slo6iqo92vfp6jtopa0' 1
+> ns2.delegate1.test.dyndns A 0 127.0.0.1 3600 'oshpf39sqa4j1ciudbbvtb5dkrijnpss' 1
+> ns2.delegate2.test.dyndns A 0 127.0.0.1 3600 'rcd0fo052s6a41ao8ue0b43e1mhv50ds' 1
+--- End: diff start step.3 ---
+
+Answer:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id]
+;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; ZONE SECTION:
+;test.dyndns. IN SOA
+
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate1.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns1.delegate2.test.dyndns.', qtype=ANY
+1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400
+Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
+Reply to question for qname='ns2.delegate2.test.dyndns.', qtype=ANY
+Check if glue records are deleted and zone back to how we started
+--- Start: diff start step.4 ---
+no difference
+--- End: diff start step.4 ---
+