]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
use pack to construct the reply as Net::DNS just get it wrong
authorMark Andrews <marka@isc.org>
Wed, 29 Aug 2018 06:09:09 +0000 (16:09 +1000)
committerWitold Krecicki <wpk@isc.org>
Fri, 31 Aug 2018 07:47:56 +0000 (03:47 -0400)
bin/tests/system/resolver/ans8/ans.pl

index 80e288219e987d684fd8e84970b7e23879021cd1..f8430098cd2ff22d497f9e86d932d23c0475763c 100644 (file)
@@ -76,18 +76,15 @@ sub handleUDP {
                return $packet->data;
        }
 
-       # Ensure the QUESTION section is empty in the response.
-       $packet->pop("question");
+       # 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);
+               # QR, AA, TC
+               return (pack("nnnnnn", $packet->header->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", $packet->header->id, 0x8400, 0, 0, 0, 0));
 }
 
 sub handleTCP {