From: Witold Kręcicki Date: Thu, 5 Jul 2018 12:46:49 +0000 (+0200) Subject: Make resolver tests more civilized X-Git-Tag: v9.13.3~103^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8b36ea6b909b7664f00b835eb26cd4c3c134577;p=thirdparty%2Fbind9.git Make resolver tests more civilized --- diff --git a/bin/tests/system/resolver/ans2/ans.pl b/bin/tests/system/resolver/ans2/ans.pl index 937c187863a..ff78fdc2dab 100644 --- a/bin/tests/system/resolver/ans2/ans.pl +++ b/bin/tests/system/resolver/ans2/ans.pl @@ -99,20 +99,10 @@ for (;;) { } elsif ($qname eq "net" && $qtype eq "NS") { $packet->header->aa(1); $packet->push("answer", new Net::DNS::RR("net 300 NS a.root-servers.nil.")); - } elsif ($qname eq "example.net" && $qtype eq "NS") { + } elsif ($qname =~ /\.example\.net/ || $qname =~ /^example\.net/) { $packet->header->aa(1); - $packet->push("answer", new Net::DNS::RR("example.net 300 NS a.root-servers.nil.")); - } elsif ($qname eq "badcname.example.net" || - $qname eq "goodcname.example.net") { - # Data for CNAME/DNAME filtering. We need to make one-level - # delegation to avoid automatic acceptance for subdomain aliases - $packet->push("authority", new Net::DNS::RR("example.net 300 NS ns.example.net")); + $packet->push("authority", new Net::DNS::RR("example.net 300 NS ns.example.net.")); $packet->push("additional", new Net::DNS::RR("ns.example.net 300 A 10.53.0.3")); - } elsif ($qname =~ /^nodata\.example\.net$/i) { - $packet->header->aa(1); - } elsif ($qname =~ /^nxdomain\.example\.net$/i) { - $packet->header->aa(1); - $packet->header->rcode(NXDOMAIN); } elsif ($qname =~ /sub\.example\.org/) { # Data for CNAME/DNAME filtering. The final answers are # expected to be accepted regardless of the filter setting. diff --git a/bin/tests/system/resolver/ans3/ans.pl b/bin/tests/system/resolver/ans3/ans.pl index 4f1ef38bf59..ce5715831db 100644 --- a/bin/tests/system/resolver/ans3/ans.pl +++ b/bin/tests/system/resolver/ans3/ans.pl @@ -75,6 +75,11 @@ for (;;) { $packet->push("answer", new Net::DNS::RR($qname . " 300 CNAME goodcname.example.org")); + } elsif ($qname =~ /^nodata\.example\.net$/i) { + $packet->header->aa(1); + } elsif ($qname =~ /^nxdomain\.example\.net$/i) { + $packet->header->aa(1); + $packet->header->rcode(NXDOMAIN); } elsif ($qname eq "cname.sub.example.org") { $packet->push("answer", new Net::DNS::RR($qname . @@ -89,6 +94,10 @@ for (;;) { } elsif ($qname eq "www.ok.sub.example.org") { $packet->push("answer", new Net::DNS::RR($qname . " 300 A 192.0.2.1")); + } elsif ($qname eq "ns.example.net") { + $packet->push("answer", + new Net::DNS::RR($qname . + " 300 A 10.53.0.3")); } else { $packet->push("answer", new Net::DNS::RR("www.example.com 300 A 1.2.3.4")); } diff --git a/bin/tests/system/resolver/ans8/ans.pl b/bin/tests/system/resolver/ans8/ans.pl index 948859d6985..59c55b738bc 100644 --- a/bin/tests/system/resolver/ans8/ans.pl +++ b/bin/tests/system/resolver/ans8/ans.pl @@ -44,33 +44,38 @@ $SIG{TERM} = \&rmpid; sub handleUDP { my ($buf) = @_; - my $request; + my $packet; if ($Net::DNS::VERSION > 0.68) { - $request = new Net::DNS::Packet(\$buf, 0); + $packet = new Net::DNS::Packet(\$buf, 0); $@ and die $@; } else { my $err; - ($request, $err) = new Net::DNS::Packet(\$buf, 0); + ($packet, $err) = new Net::DNS::Packet(\$buf, 0); $err and die $err; } - my @questions = $request->question; + my @questions = $packet->question; my $qname = $questions[0]->qname; my $qtype = $questions[0]->qtype; my $qclass = $questions[0]->qclass; - my $id = $request->header->id; - - my $packet = new Net::DNS::Packet(); + my $id = $packet->header->id; $packet->header->qr(1); $packet->header->aa(0); - $packet->header->id($id); + $packet->header->tc(0); if ($qname eq "truncated.no-questions") { + $packet->pop("question"); $packet->header->tc(1); - } else { - $packet->header->tc(0); + } elsif ($qname eq "not-truncated.no-questions") { + $packet->pop("question"); + } elsif ($qname eq "no-questions" && $qtype eq "NS") { + $packet->header->aa(1); + $packet->push("answer", new Net::DNS::RR("no-questions. 300 NS ns.no-questions")); + } elsif ($qname eq "ns.no-questions" && $qtype eq "A") { + $packet->header->aa(1); + $packet->push("answer", new Net::DNS::RR("ns.no-questions. 300 A 10.53.0.8")); } # Net::DNS versions < 0.68 insert an ./ANY RR into the QUESTION section