From 0e5b2871ca6456b01d4bf037a6e68badf1ff1a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henryk=20Pl=C3=B6tz?= Date: Fri, 3 Oct 2014 19:58:52 +0200 Subject: Initial commit of djbdns-1.05.tar.gz Source was http://cr.yp.to/djbdns/djbdns-1.05.tar.gz, SHA1 2efdb3a039d0c548f40936aa9cb30829e0ce8c3d --- rts.tests | 767 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 767 insertions(+) create mode 100644 rts.tests (limited to 'rts.tests') diff --git a/rts.tests b/rts.tests new file mode 100644 index 0000000..ee2be85 --- /dev/null +++ b/rts.tests @@ -0,0 +1,767 @@ +# Requirements: +# You are running as root. +# You have dns{cache,log}, {tiny,pick,wall,axfr,rbl}dns accounts. +# You have local IP addresses 127.43.0.{1,2,3,4,5}. +# You are connected to the Internet. +# +# Some features not tested here: +# dns_random works. +# random-ip works. +# dnstrace works. +# dnstracesort works. +# dns_resolvconfrewrite rereads after 10 minutes or 10000 uses. +# dns_resolvconfip rereads after 10 minutes or 10000 uses. +# /etc/resolv.conf is parsed properly. +# dns_transmit handles timeouts properly. +# dns_transmit falls back to TCP properly. +# dns_transmit handles various strange situations: e.g., NOTIMP. + + +umask 022 + +rm -rf rts-tmp +service=`pwd`/rts-tmp/service + +mkdir rts-tmp +mkdir $service + +echo ' +*.b:.2.3.4 +=localhost:localhost. +-.localhost:localhost. +?:+.yp.to+.cr.yp.to+.whatever.cr.yp.to +*.: +' > rts-tmp/rewrite + +DNSREWRITEFILE=rts-tmp/rewrite; export DNSREWRITEFILE +DNSCACHEIP=127.555.0.1; export DNSCACHEIP + + +echo '--- dnscache-conf works' +dnscache-conf dnscache dnslog $service/dnscache 127.555.0.1 +echo 127.555.0.2 > $service/dnscache/root/servers/tEST +echo 127.555.0.2 > $service/dnscache/root/servers/tEST5 +echo 127.555.0.4 > $service/dnscache/root/servers/43.127.iN-aDDR.aRPA +touch $service/dnscache/root/ip/127.43.0.1 +supervise $service/dnscache | supervise $service/dnscache/log & + +echo '--- tinydns-conf works' +tinydns-conf tinydns dnslog $service/tinydns 127.555.0.2 +supervise $service/tinydns | supervise $service/tinydns/log & + +echo '--- pickdns-conf works' +pickdns-conf pickdns dnslog $service/pickdns 127.555.0.3 +supervise $service/pickdns | supervise $service/pickdns/log & + +echo '--- walldns-conf works' +walldns-conf walldns dnslog $service/walldns 127.555.0.4 +supervise $service/walldns | supervise $service/walldns/log & + +echo '--- rbldns-conf works' +rbldns-conf rbldns dnslog $service/rbldns 127.555.0.5 RbL.TeSt +supervise $service/rbldns | supervise $service/rbldns/log & + +echo '--- axfrdns-conf works' +axfrdns-conf axfrdns dnslog $service/axfrdns $service/tinydns 127.555.0.2 +supervise $service/axfrdns | supervise $service/axfrdns/log & + +sleep 1 + + +echo '--- cache handles simple example' +cachetest \ +one two three four five \ +one:un one two three four five \ +two:deux one two three four five \ +three:trois one two three four five \ +four:quatre one two three four five \ +five:cinq one two three four five \ +one:een one two three four five \ +two:twee one two three four five \ +three:drie one two three four five \ +four:vier one two three four five \ +five:vijf one two three four five +echo $? + +echo '--- cache handles overwriting' +cachetest \ +one two three four five \ +one:un one two three four five \ +one:een one two three four five \ +two:deux one two three four five \ +two:twee one two three four five \ +three:trois one two three four five \ +three:drie one two three four five \ +four:quatre one two three four five \ +four:vier one two three four five \ +five:cinq one two three four five \ +five:vijf one two three four five +echo $? + +echo '--- cache handles long chains' +cachetest \ +a:1 a \ +a:2 a \ +a:3 a \ +a:4 a \ +a:5 a \ +a:6 a \ +a:7 a \ +a:8 a \ +a:9 a +echo $? + + +echo '--- dnsip finds IP address of network-surveys.cr.yp.to' +dnsip network-surveys.cr.yp.to +echo $? + +echo '--- dnsip does not find nonexistent.cr.yp.to' +dnsip nonexistent.cr.yp.to +echo $? + +echo '--- dnsip rejects overly long domain names' +dnsip x.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 +echo $? + +echo '--- dnsip handles IP address on input' +dnsip 1.2.3.4 127.0.0.1 10.555.678.901 '[010.0555.0678.0901]' +echo $? + +echo '--- dnsip allows 0 to be omitted' +dnsip 127...1 +echo $? + +echo '--- dnsip handles multiple IP addresses on input' +dnsip 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16 +echo $? + +echo '--- dnsipq handles simple examples' +dnsipq 1.b localhost anything.localhost 5.6.7.8 network-surveys nonexistent +echo $? + +echo '--- dnsmx finds MX record for network-surveys.cr.yp.to' +dnsmx network-surveys.cr.yp.to +echo $? + +echo '--- dnsmx manufactures MX record for nonexistent.cr.yp.to' +dnsmx NONexistent.cr.yp.to +echo $? + +echo '--- dnsmx rejects overly long domain names' +dnsmx 0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 +echo $? + +echo '--- dnstxt finds TXT record for leap.yp.to' +dnstxt leap.yp.to +echo $? + +echo '--- dnstxt does not find nonexistent.cr.yp.to' +dnstxt nonexistent.cr.yp.to +echo $? + +echo '--- dnstxt rejects overly long domain names' +dnstxt 0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789 +echo $? + +echo '--- dnsname finds host name of 131.193.178.100' +dnsname 131.193.178.100 +echo $? + +echo '--- dnsname does not find 127.5.6.7' +dnsname 127.5.6.7 +echo $? + +echo '--- dnsname rejects misformatted IP addresses' +dnsname 1.2.3 +echo $? + +echo '--- dnsfilter finds some host names' +echo '131.193.178.100+one two three +127.5.6.7+one two three +10+one two three' | dnsfilter +echo $? + + +echo ' +=movie.edu:1.2.3.4 +*star +' > rts-tmp/data + +echo '--- tinydns-data complains about unrecognized initial characters' +( cd rts-tmp; tinydns-data; echo $? ) + +echo ' +.movie.edu:192.249.249.3:a +.movie.edu::wormhole.movie.edu +&fx.movie.edu:192.253.254.2:a +&fx.movie.edu:192.253.254.3:b +.249.249.192.in-addr.arpa:192.249.249.3:a +.249.249.192.in-addr.arpa::wormhole.movie.edu +.253.253.192.in-addr.arpa:192.249.249.3:a +.253.253.192.in-addr.arpa:192.249.249.1:b +.253.253.192.in-addr.arpa:192.253.253.1:c +.254.253.192.in-addr.arpa:192.253.254.2:a +.254.253.192.in-addr.arpa:192.253.254.3:b + ++localhost.movie.edu:127.0.0.1 + +@movie.edu:192.249.249.1:a + +'\''movie.edu:Movie University +:movie.edu:12345:One +:movie.edu:12345:Two +:movie.edu:12346:Three +:movie.edu:12346:Four + +=wormhole.movie.edu:192.249.249.1 ++wh249.movie.edu:192.249.249.1 +=robocop.movie.edu:192.249.249.2 +=terminator.movie.edu:192.249.249.3 ++bigt.movie.edu:192.249.249.3 +=diehard.movie.edu:192.249.294.4 ++dh.movie.edu:192.249.294.4 + +=wormhole.movie.edu:192.253.253.1 ++wh253.movie.edu:192.253.253.1 ++wh.movie.edu:192.253.253.1 ++wh.movie.edu:192.253.253.1 +=misery.movie.edu:192.253.253.2 +=shining.movie.edu:192.253.253.3 +=carrie.movie.edu:192.253.253.4 + +.blah.movie.edu:1.2.3.4:blah.movie.edu +'\''blah.movie.edu:Text +' > rts-tmp/data +utime rts-tmp/data 987654321 + +echo '--- tinydns-data complains if it cannot create data.tmp' +rm -f rts-tmp/data.tmp +ln -s data.tmp rts-tmp/data.tmp +( cd rts-tmp; tinydns-data; echo $? ) +rm -f rts-tmp/data.tmp + +echo '--- tinydns-data handles simple example' +( cd rts-tmp; tinydns-data; echo $? ) + +echo '--- tinydns-data produces A records' +( cd rts-tmp; tinydns-get 1 wormhole.movie.edu | sort; echo $? ) + +echo '--- tinydns-data produces NS records' +( cd rts-tmp; tinydns-get 2 movie.edu; echo $? ) + +echo '--- tinydns-data produces SOA records' +( cd rts-tmp; tinydns-get 6 movie.edu; echo $? ) + +echo '--- tinydns-data produces PTR records' +( cd rts-tmp; tinydns-get 12 1.253.253.192.in-addr.arpa; echo $? ) + +echo '--- tinydns-data produces MX records' +( cd rts-tmp; tinydns-get 15 movie.edu; echo $? ) + +echo '--- tinydns-data produces TXT records' +( cd rts-tmp; tinydns-get 16 movie.edu; echo $? ) + +echo '--- tinydns-data produces AXFR responses' +( cd rts-tmp; tinydns-get 252 movie.edu; echo $? ) + +echo '--- tinydns-data produces ANY responses' +( cd rts-tmp; tinydns-get 255 movie.edu; echo $? ) + +echo '--- tinydns-data produces records of any type' +( cd rts-tmp; tinydns-get 12345 movie.edu; echo $? ) +( cd rts-tmp; tinydns-get 12346 movie.edu; echo $? ) + +echo '--- tinydns-data produces NODATA responses' +( cd rts-tmp; tinydns-get 54321 movie.edu; echo $? ) + +echo '--- tinydns-data produces NXDOMAIN responses' +( cd rts-tmp; tinydns-get 1 this.does.not.exist.movie.edu; echo $? ) + +echo '--- tinydns-data produces NXDOMAIN responses for suffixes' +( cd rts-tmp; tinydns-get 1 ns.movie.edu; echo $? ) + +echo '--- tinydns-data produces NXDOMAIN ANY responses for suffixes' +( cd rts-tmp; tinydns-get 255 ns.movie.edu; echo $? ) + +echo '--- tinydns-data does not produce responses outside its bailiwick' +( cd rts-tmp; tinydns-get 1 edu; echo $? ) + +echo '--- tinydns-data does not include TXT in additional sections' +( cd rts-tmp; tinydns-get 1 blah.movie.edu; echo $? ) + + +echo ' +.test:10.2.3.4:a ++b.ns.test:10.2.3.6:259200 +.test:10.2.3.5:b +'\''127.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 +'\''128.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 +'\''254.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 +'\''255.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 +'\''387.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 +'\''388.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 +'\''400.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +'\''410.test:01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +'\''420.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +'\''430.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +'\''435.test:012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 +'\''436.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 +'\''1000.test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +=\000\001\177\200\277\.\.\..test:10.5.6.7 +.7.6.5.10.in-addr.arpa:10.5.6.7 + +&x.\0\1\177\200\277\.\.\..test:10.8.9.10 +' > rts-tmp/data +utime rts-tmp/data 0 + +echo '--- tinydns-data handles another example' +( cd rts-tmp; tinydns-data; echo $? ) + +echo '--- tinydns-data uses serial 1 for mtime 0' +( cd rts-tmp; tinydns-get Any test; echo $? ) + +echo '--- tinydns-data does not split size-127 TXT records' +( cd rts-tmp; tinydns-get Txt 127.test; echo $? ) + +echo '--- tinydns-data splits size-128 TXT records' +( cd rts-tmp; tinydns-get 16 128.test; echo $? ) + +echo '--- tinydns-data splits size-254 TXT records' +( cd rts-tmp; tinydns-get 16 254.test; echo $? ) + +echo '--- tinydns-data doubly splits size-255 TXT records' +( cd rts-tmp; tinydns-get 16 255.test; echo $? ) + +echo '--- tinydns-data excludes the additional section if necessary' +( cd rts-tmp; tinydns-get 16 387.test; echo $? ) +( cd rts-tmp; tinydns-get 16 388.test; echo $? ) + +echo '--- tinydns-data excludes the authority section if necessary' +( cd rts-tmp; tinydns-get 16 435.test; echo $? ) +( cd rts-tmp; tinydns-get 16 436.test; echo $? ) + +echo '--- tinydns-data handles size-1000 TXT records' +( cd rts-tmp; tinydns-get 16 1000.test; echo $? ) + +echo '--- tinydns-data handles unusual characters in owner names' +( cd rts-tmp; tinydns-get A '\0\1\177\200\277\56\56\56.test'; echo $? ) + +echo '--- tinydns-data handles unusual characters in PTR results' +( cd rts-tmp; tinydns-get Ptr 7.6.5.10.in-addr.arpa; echo $? ) + +echo '--- tinydns-data handles delegations' +( cd rts-tmp; tinydns-get 1 'x.\0\1\177\200\277\56\56\56.test'; echo $? ) +( cd rts-tmp; tinydns-get 1 'ns.x.\0\1\177\200\277\56\56\56.test'; echo $? ) +( cd rts-tmp; tinydns-get 1 'z.y.x.\0\1\177\200\277\56\56\56.test'; echo $? ) + + +echo ' +Ztest:Primary.Server:Host.Master:1234567:2345678:3456789:4567890:5678901:98765 +&test:1.2.3.4::37 +@*.wild.test:1.2.3.7:mail.wild.test:54321:46 +&child.test:1.2.3.5::38 +@test:1.2.3.4:::41 +=test:1.2.3.4:39 ++www.test:1.2.3.4:40 +'\''test:Text:42 +:test:12345:Binary:43 +Cmail.test:www.test:44 ++*.wild.test:1.2.3.6:45 +=override.wild.test:1.2.3.8:47 ++*.wild.wild.test:1.2.3.9:48 +&child.wild.test:1.2.3.10:49 +C*.alias.wild.test:wild.test:50 +' > rts-tmp/data +utime rts-tmp/data 0 + +echo '--- tinydns-data handles another example' +( cd rts-tmp; tinydns-data; echo $? ) + +echo '--- tinydns-data handles TTLs' +( cd rts-tmp; tinydns-get 255 test; echo $? ) +( cd rts-tmp; tinydns-get 255 www.test; echo $? ) +( cd rts-tmp; tinydns-get 255 child.test; echo $? ) + +echo '--- tinydns-data handles CNAMEs' +( cd rts-tmp; tinydns-get 255 mail.test; echo $? ) +( cd rts-tmp; tinydns-get 5 mail.test; echo $? ) +( cd rts-tmp; tinydns-get 1 mail.test; echo $? ) +( cd rts-tmp; tinydns-get 255 foo.mail.test; echo $? ) + +echo '--- tinydns-data does not apply wildcard A to base name' +( cd rts-tmp; tinydns-get 1 wild.test; echo $? ) + +echo '--- tinydns-data handles wildcard A records' +( cd rts-tmp; tinydns-get 1 x.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 1 xy.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 1 x.z.wild.test; echo $? ) + +echo '--- tinydns-data handles wildcard MX records' +( cd rts-tmp; tinydns-get 255 wild.test; echo $? ) + +echo '--- tinydns-data does not apply wildcard MX to base name' +( cd rts-tmp; tinydns-get 255 x.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 255 xy.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 15 x.z.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 255 x.z.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 255 '*'.wild.test; echo $? ) + +echo '--- tinydns-data uses wildcard under base of sub-wildcard' +( cd rts-tmp; tinydns-get 255 alias.wild.test; echo $? ) + +echo '--- tinydns-data handles wildcard CNAME records' +( cd rts-tmp; tinydns-get 255 xyz.alias.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 255 '*'.alias.wild.test; echo $? ) + +echo '--- tinydns-data lets explicit record override wildcard' +( cd rts-tmp; tinydns-get 255 override.wild.test; echo $? ) + +echo '--- tinydns-data handles overrides sanely' +( cd rts-tmp; tinydns-get 255 x.override.wild.test; echo $? ) + +echo '--- tinydns-data overrides wildcard with subdomain wildcard' +( cd rts-tmp; tinydns-get 255 x.wild.wild.test; echo $? ) + +echo '--- tinydns-data overrides wildcard with delegation' +( cd rts-tmp; tinydns-get 255 child.wild.test; echo $? ) +( cd rts-tmp; tinydns-get 255 x.child.wild.test; echo $? ) + + +echo ' +.four:1.2.3.4::0:30000000fedcba98 ++www.four:1.2.3.4:0:30000000fedcba98 +.five:1.2.3.5:::30000000fedcba98 ++www.five:1.2.3.5::30000000fedcba98 +.six:1.2.3.6::0:50000000fedcba98 ++www.six:1.2.3.6:0:50000000fedcba98 +.seven:1.2.3.7:::50000000fedcba98 ++www.seven:1.2.3.7::50000000fedcba98 +' > rts-tmp/data +utime rts-tmp/data 7654321 + +echo '--- tinydns-data handles another example' +( cd rts-tmp; tinydns-data; echo $? ) + +echo '--- tinydns-data handles ending time' +( cd rts-tmp; tinydns-get 255 www.four; echo $? ) +( cd rts-tmp; tinydns-get 255 www.six; echo $? ) + +echo '--- tinydns-data handles starting time' +( cd rts-tmp; tinydns-get 255 www.five; echo $? ) +( cd rts-tmp; tinydns-get 255 www.seven; echo $? ) + + +echo '--- tinydns-edit handles simple examples' +echo '' > rts-tmp/data +( cd rts-tmp; tinydns-edit data data.new add ns heaven.af.mil 1.2.3.5; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add ns heaven.af.mil 1.2.3.6; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add childns sub.heaven.af.mil 1.2.10.11; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add childns sub.heaven.af.mil 1.2.10.12; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add host lion.heaven.af.mil 1.2.3.4; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add host tiger.heaven.af.mil 1.2.3.5; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add host bear.heaven.af.mil 1.2.3.6; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add alias www.heaven.af.mil 1.2.3.4; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add mx heaven.af.mil 1.2.3.4; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add mx heaven.af.mil 1.2.3.7; echo $? ) +cat rts-tmp/data + +echo '--- tinydns-edit rejects hosts with old names or IP addresses' +( cd rts-tmp; tinydns-edit data data.new add host panda.heaven.af.mil 1.2.3.6; echo $? ) +( cd rts-tmp; tinydns-edit data data.new add host bear.heaven.af.mil 1.2.3.8; echo $? ) +cat rts-tmp/data + +echo '--- tinydns-edit recognizes alternate forms of host names' +( cd rts-tmp; tinydns-edit data data.new add host 'BE\101r.Heaven.AF..Mil.' 1.2.3.8; echo $? ) +cat rts-tmp/data + +echo '--- tinydns-edit copies TTLs from previous NS records' +echo '.test:1.2.3.4:a:3600' > rts-tmp/data +( cd rts-tmp; tinydns-edit data data.new add ns test 1.2.3.5; echo $? ) +cat rts-tmp/data + + + +echo ' +.Test:127.555.0.2 +=Www.Test:127.555.0.100 +=Www.Test:127.555.0.101 +@Test:127.555.0.100:a:1234 +@Test:127.555.0.101:b:45678 +&Pick.Test:127.555.0.3 +&Pick2.Test:127.555.0.3 +&Rbl.Test:127.555.0.5 +.Test2:127.555.0.2 ++*.Test2:127.555.0.102 +C*.Www.Test2:Www.Test2:5000 +=one.Test2:127.555.0.103::300000003456789a +=two.Test2:127.555.0.104:0:500000003456789a +.Test3:127.555.0.2 +=Www.Test3:127.0.0.106 +.Test4:127.555.0.2 +'\''Test4:001234567890123456789012345678901234567890123456789 +'\''Test4:101234567890123456789012345678901234567890123456789 +'\''Test4:201234567890123456789012345678901234567890123456789 +'\''Test4:301234567890123456789012345678901234567890123456789 +'\''Test4:401234567890123456789012345678901234567890123456789 +'\''Test4:501234567890123456789012345678901234567890123456789 +'\''Test4:601234567890123456789012345678901234567890123456789 +'\''Test4:701234567890123456789012345678901234567890123456789 +'\''Test4:801234567890123456789012345678901234567890123456789 +'\''Test4:901234567890123456789012345678901234567890123456789 +'\''Big.Test:0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +%i3:127.555.0.3 +%i4:127.555.0.4 +%i5:127.555.0.5 +%ME:127 +%EX +.Test5:127.555.0.2:ex:::EX +.Test5:127.555.0.2:me:::ME +.Test5:127.555.0.2:i3:::i3 +.Test5:127.555.0.2:i4:::i4 +.Test5:127.555.0.2:i5:::i5 +-Pick.Test5:127.555.0.100:::EX ++Pick.Test5:127.555.0.101:::EX +-Pick2.Test5:127.555.0.102:::ME ++Pick2.Test5:127.555.0.102:::ME ++Pick3.Test5:127.555.0.100 ++Pick3.Test5:127.555.0.101:::EX ++Pick3.Test5:127.555.0.102:::ME ++Pick3.Test5:127.555.0.103:::i3 ++Pick3.Test5:127.555.0.104:::i4 ++Pick3.Test5:127.555.0.105:::i5 ++*.Wild.Test5:127.555.0.100 ++*.Wild.Test5:127.555.0.101:::EX ++*.Wild.Test5:127.555.0.102:::ME ++*.Wild.Test5:127.555.0.103:::i3 ++*.Wild.Test5:127.555.0.104:::i4 ++*.Wild.Test5:127.555.0.105:::i5 +' > $service/tinydns/root/data +utime $service/tinydns/root/data 987654321 +( cd $service/tinydns/root; tinydns-data ) + +echo ' +-Pick.Test:127.555.0.100 ++Pick.Test:127.555.0.101 +-Pick2.Test:127.555.0.102:ME ++Pick2.Test:127.555.0.102:ME +%ME:127 +' > $service/pickdns/root/data +( cd $service/pickdns/root; pickdns-data ) + +echo ' +4.0.0.1 +4.0.0.2/31 +4.0.0.4/30 +4.0.0.8/29 +4.0.0.16/28 +4.0.0.32/27 +4.0.0.64/26 +4.0.0.128/25 +4.0.1.0/24 +4.0.2.0/23 +4.0.4.0/22 +4.0.8.0/21 +4.0.16.0/20 +4.0.32.0/19 +4.0.64.0/18 +4.0.128.0/17 +4.1.0.0/16 +4.2.0.0/15 +4.4.0.0/14 +4.8.0.0/13 +4.16.0.0/12 +4.32.0.0/11 +4.64.0.0/10 +4.128.0.0/9 +5.0.0.0/8 +:127.0.0.3:See http://www.rbl.test/$ +' > $service/rbldns/root/data +( cd $service/rbldns/root; rbldns-data ) + +echo ' +127.:allow,AXFR="tEsT/TeSt2/TEst5" +:deny +' > $service/axfrdns/tcp +( cd $service/axfrdns; tcprules tcp.cdb tcp.tmp < tcp ) + + +echo '--- dnscache handles dotted-decimal names' +dnsqr 255 127.43.123.234 +echo $? + +echo '--- tinydns works' +dnsip WWW.TEST | tr ' ' '\012' | sort +echo $? +dnsmx TEST +echo $? +dnsq 255 WWW.TEST 127.555.0.2 | sort +echo $? +dnsq Any TEST 127.555.0.2 +echo $? + +echo '--- dnscache handles large TXT records' +dnstxt BIG.Test + +echo '--- walldns handles in-addr.arpa names' +dnsname 127.555.6.7 +echo $? +dnsname 127.555.123.234 +echo $? +dnsip 234.123.43.127.IN-ADDR.ARPA +echo $? +dnsq 255 234.123.43.127.IN-ADDR.ARPA 127.555.0.4 +echo $? + +echo '--- walldns handles dotted-decimal names' +dnsq 255 127.43.123.234 127.555.0.4 +echo $? + +echo '--- walldns rejects other names' +dnsq 255 BLAH.TEST 127.555.0.4 +echo $? + +echo '--- rbldns works' +dnsip 2.3.4.5.rbl.test +echo $? +dnstxt 2.3.4.5.rbl.test +echo $? +dnsq 255 2.3.4.5.rbl.test 127.555.0.5 +echo $? +dnsip 200.255.1.4.rbl.test +echo $? +dnstxt 200.255.1.4.rbl.test +echo $? +dnsq 255 200.255.1.4.rbl.test 127.555.0.5 +echo $? +dnsip 200.255.0.4.rbl.test +echo $? +dnstxt 200.255.0.4.rbl.test +echo $? +dnsq 255 200.255.0.4.rbl.test 127.555.0.5 +echo $? +dnsip 1.0.0.4.rbl.test +echo $? +dnstxt 1.0.0.4.rbl.test +echo $? +dnsq 255 1.0.0.4.rbl.test 127.555.0.5 +echo $? +dnsip 0.0.0.4.rbl.test +echo $? +dnstxt 0.0.0.4.rbl.test +echo $? +dnsq 255 0.0.0.4.rbl.test 127.555.0.5 +echo $? + +echo '--- tinydns handles differentiation' +dnsip PICK.TEST5 +echo $? +dnsip PICK2.TEST5 +echo $? +dnsip PICK3.TEST5 | tr ' ' '\012' | sort +echo $? +dnsip REALLY.WILD.TEST5 | tr ' ' '\012' | sort +echo $? +dnsq 255 PICK.TEST5 127.555.0.2 +echo $? +dnsq 255 PICK2.TEST5 127.555.0.2 +echo $? +dnsq 255 PICK3.TEST5 127.555.0.2 | sort +echo $? +dnsq 255 REALLY.WILD.TEST5 127.555.0.2 | sort +echo $? + +echo '--- tinydns-get handles differentiation' +( cd rts-tmp/service/tinydns/root + tinydns-get 255 PICK.TEST5 1.2.3.4; echo $? + tinydns-get 255 PICK2.TEST5 1.2.3.4; echo $? + tinydns-get 255 PICK3.TEST5 1.2.3.4 | sort; echo $? + tinydns-get 255 REALLY.WILD.TEST5 1.2.3.4 | sort; echo $? + tinydns-get 255 PICK.TEST5 127.555.0.4; echo $? + tinydns-get 255 PICK2.TEST5 127.555.0.4; echo $? + tinydns-get 255 PICK3.TEST5 127.555.0.4 | sort; echo $? + tinydns-get 255 REALLY.WILD.TEST5 127.555.0.4 | sort; echo $? +) + +echo '--- pickdns works' +dnsip PICK.TEST +echo $? +dnsip PICK2.TEST +echo $? +dnsq 255 PICK.TEST 127.555.0.3 +echo $? + +echo '--- pickdns answers MX' +dnsmx PICK.TEST +echo $? + +echo '--- pickdns rejects queries for unknown information' +dnsq 255 PICK11.TEST 127.555.0.3 +echo $? +dnsq Txt PICK2.TEST 127.555.0.3 +echo $? + +echo '--- axfrdns rejects unauthorized transfer attempts' +tcpclient -RHl0 127.43.0.2 53 axfr-get TEST3 rts-tmp/zone rts-tmp/zone.tmp +echo $? +tcpclient -RHl0 127.43.0.2 53 axfr-get TEST4 rts-tmp/zone2 rts-tmp/zone2.tmp +echo $? + +echo '--- axfrdns works' +tcpclient -RHl0 127.43.0.2 53 axfr-get TEST rts-tmp/zone rts-tmp/zone.tmp +echo $? +cat rts-tmp/zone + +echo '--- axfrdns handles differentiation' +tcpclient -RHl0 -i 127.43.0.2 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp +echo $? +cat rts-tmp/zone5 +rm rts-tmp/zone5 +tcpclient -RHl0 -i 127.43.0.3 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp +echo $? +cat rts-tmp/zone5 +rm rts-tmp/zone5 +tcpclient -RHl0 -i 127.43.0.4 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp +echo $? +cat rts-tmp/zone5 +rm rts-tmp/zone5 +tcpclient -RHl0 -i 127.43.0.5 127.43.0.2 53 axfr-get TEST5 rts-tmp/zone5 rts-tmp/zone5.tmp +echo $? +cat rts-tmp/zone5 + +echo '--- axfrdns gives authoritative answers' +dnsq any Test4 127.43.0.2 +echo $? + +echo '--- axfrdns handles size-1000 TXT records' +dnsq any BIG.TEST 127.43.0.2 +echo $? + +echo '--- axfr-get handles zones with wildcards' +tcpclient -RHl0 127.43.0.2 53 axfr-get TEST2 rts-tmp/zone2 rts-tmp/zone2.tmp +echo $? +cat rts-tmp/zone2 + + +svc -dx $service/dnscache +svc -dx $service/tinydns +svc -dx $service/pickdns +svc -dx $service/walldns +svc -dx $service/rbldns +svc -dx $service/axfrdns + +svc -dx $service/dnscache/log +svc -dx $service/tinydns/log +svc -dx $service/pickdns/log +svc -dx $service/walldns/log +svc -dx $service/rbldns/log +svc -dx $service/axfrdns/log + +wait +wait +wait +wait +wait +wait + +exit 0 -- cgit v1.2.3