From: Mark Andrews Date: Wed, 29 Aug 2018 06:09:09 +0000 (+1000) Subject: use pack to construct the reply as Net::DNS just get it wrong X-Git-Tag: v9.12.3rc1~20^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=259e0b0544e4e6c723ea292e5610faa9d3d8e7a6;p=thirdparty%2Fbind9.git use pack to construct the reply as Net::DNS just get it wrong (cherry picked from commit feaf381adb6d2f75caebefff95ddd66511ac056c) --- diff --git a/bin/tests/system/resolver/ans8/ans.pl b/bin/tests/system/resolver/ans8/ans.pl index 948859d6985..6d13110eef9 100644 --- a/bin/tests/system/resolver/ans8/ans.pl +++ b/bin/tests/system/resolver/ans8/ans.pl @@ -61,23 +61,15 @@ sub handleUDP { my $qclass = $questions[0]->qclass; my $id = $request->header->id; - my $packet = new Net::DNS::Packet(); - - $packet->header->qr(1); - $packet->header->aa(0); - $packet->header->id($id); + # don't use Net::DNS to construct the header only reply as early + # versions just get it completely wrong. if ($qname eq "truncated.no-questions") { - $packet->header->tc(1); - } else { - $packet->header->tc(0); + # QR, AA, TC + return (pack("nnnnnn", $id, 0x8600, 0, 0, 0, 0)); } - - # Net::DNS versions < 0.68 insert an ./ANY RR into the QUESTION section - # if the latter is empty. Make sure Net::DNS version does not - # influence the return value of this function by returning the query ID - # and flags generated by Net::DNS with 8 zero bytes appended. - return substr($packet->data, 0, 4) . "\x00" x 8; + # QR, AA + return (pack("nnnnnn", $id, 0x8400, 0, 0, 0, 0)); } sub handleTCP {