]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Debug trailing data failures 9556/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 5 Mar 2020 09:04:50 +0000 (10:04 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Sat, 26 Sep 2020 12:02:09 +0000 (14:02 +0200)
pdns/dnsdist.cc
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/test_Trailing.py

index ac24be4c58718bc8f7040930161c108aa382f934..953bfbe2fd233d0119213618b616979111ea6956 100644 (file)
@@ -204,12 +204,13 @@ bool DNSQuestion::setTrailingData(const std::string& tail)
   const uint16_t messageLen = getDNSPacketLength(message, this->len);
   const uint16_t tailLen = tail.size();
   if (tailLen > (this->size - messageLen)) {
+    vinfolog("Trailing data update failed, the new trailing data size was %d, the existing message length was %d, packet size was %d and buffer size %d", tail.size(), messageLen, this->len, this->size);
     return false;
   }
 
   /* Update length and copy data from the Lua string. */
   this->len = messageLen + tailLen;
-  if(tailLen > 0) {
+  if (tailLen > 0) {
     tail.copy(message + messageLen, tailLen);
   }
   return true;
index 773d5732ffa486e62c757f2e8116d8642fd1fb48..3145830121c34692a6f656d99d12c5f75f3a3b5e 100644 (file)
@@ -202,6 +202,7 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase):
             try:
                 request = dns.message.from_wire(data, ignore_trailing=ignoreTrailing)
             except dns.message.TrailingJunk as e:
+                print('trailing data exception in UDPResponder')
                 if trailingDataResponse is False or forceRcode is True:
                     raise
                 print("UDP query with trailing data, synthesizing response")
index b87b519f7ad7b9fe11f42ee82ec84383ab497cb8..2de5580fb74c3db13698cd072bbaf91de0eb96d4 100644 (file)
@@ -10,6 +10,7 @@ class TestTrailingDataToBackend(DNSDistTest):
     # responders allow trailing data and we don't want
     # to mix things up.
     _testServerPort = 5360
+    _verboseMode = True
     _config_template = """
     newServer{address="127.0.0.1:%s"}
 
@@ -163,6 +164,7 @@ class TestTrailingDataToBackend(DNSDistTest):
             self.assertEquals(receivedResponse, expectedResponse)
 
 class TestTrailingDataToDnsdist(DNSDistTest):
+    _verboseMode = True
     _config_template = """
     newServer{address="127.0.0.1:%s"}
 
@@ -171,6 +173,7 @@ class TestTrailingDataToDnsdist(DNSDistTest):
     function removeTrailingData(dq)
         local success = dq:setTrailingData("")
         if not success then
+            print("Trailing removal failed")
             return DNSAction.ServFail, ""
         end
         return DNSAction.None, ""