]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Aslo test query_address for value and query_port for presence 10280/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 7 Apr 2021 08:07:09 +0000 (10:07 +0200)
committerOtto <otto.moerbeek@open-xchange.com>
Fri, 9 Apr 2021 09:01:16 +0000 (11:01 +0200)
(cherry picked from commit 11927be3eb2a9f1aa0f210dc7dd73c7c32209d01)

regression-tests.recursor-dnssec/test_RecDnstap.py

index 8a8ad9a5baa651abbc01eb45365e726c7d562d7d..e3f7b3a40d5cc1c4630f6c1ed74d00b3a9fd1f0c 100644 (file)
@@ -26,7 +26,7 @@ except NameError:
     pass
 
 
-def checkDnstapBase(testinstance, dnstap, protocol, initiator):
+def checkDnstapBase(testinstance, dnstap, protocol, initiator, responder):
     testinstance.assertTrue(dnstap)
     testinstance.assertTrue(dnstap.HasField('identity'))
     #testinstance.assertEqual(dnstap.identity, b'a.server')
@@ -40,19 +40,20 @@ def checkDnstapBase(testinstance, dnstap, protocol, initiator):
     testinstance.assertTrue(dnstap.message.HasField('socket_family'))
     testinstance.assertEquals(dnstap.message.socket_family, dnstap_pb2.INET)
     #
-    # We cannot check the query address and port since we only log outgoing queries via dnstap
+    # The query address and port are from the the recursor, we don't know the port
     #
-    #testinstance.assertTrue(dnstap.message.HasField('query_address'))
-    #testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator)
+    testinstance.assertTrue(dnstap.message.HasField('query_address'))
+    testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator)
+    testinstance.assertTrue(dnstap.message.HasField('query_port'))
     testinstance.assertTrue(dnstap.message.HasField('response_address'))
-    testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), initiator)
+    testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), responder)
     testinstance.assertTrue(dnstap.message.HasField('response_port'))
     testinstance.assertEquals(dnstap.message.response_port, 53)
 
 
-def checkDnstapQuery(testinstance, dnstap, protocol, initiator='127.0.0.1'):
-    testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.RESOLVER_QUERY)
-    checkDnstapBase(testinstance, dnstap, protocol, initiator)
+def checkDnstapQuery(testinstance, dnstap, protocol, initiator, responder):
+    testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_QUERY)
+    checkDnstapBase(testinstance, dnstap, protocol, initiator, responder)
 
     testinstance.assertTrue(dnstap.message.HasField('query_time_sec'))
     testinstance.assertTrue(dnstap.message.HasField('query_time_nsec'))
@@ -75,9 +76,9 @@ def checkDnstapNoExtra(testinstance, dnstap):
     testinstance.assertFalse(dnstap.HasField('extra'))
 
 
-def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator='127.0.0.1'):
-    testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.RESOLVER_RESPONSE)
-    checkDnstapBase(testinstance, dnstap, protocol, initiator)
+def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator, responder):
+    testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_RESPONSE)
+    checkDnstapBase(testinstance, dnstap, protocol, initiator, responder)
 
     testinstance.assertTrue(dnstap.message.HasField('query_time_sec'))
     testinstance.assertTrue(dnstap.message.HasField('query_time_nsec'))
@@ -285,7 +286,7 @@ dnstapFrameStreamServer({"%s"})
         # check the dnstap message corresponding to the UDP query
         dnstap = self.getFirstDnstap()
 
-        checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, '127.0.0.8')
+        checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, '127.0.0.1', '127.0.0.8')
         # We don't expect a response
         checkDnstapNoExtra(self, dnstap)