]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Aslo test query_address for value and query_port for presence 10268/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 7 Apr 2021 08:07:09 +0000 (10:07 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 7 Apr 2021 08:07:09 +0000 (10:07 +0200)
regression-tests.recursor-dnssec/test_RecDnstap.py

index 8993f432f582765f3b0e9789e0c01aa3d8f3181a..bb6aeea5ded14087bb5cfbd61afca38e5b926eeb 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.assertEqual(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.assertEqual(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.assertEqual(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.assertEqual(dnstap.message.response_port, 53)
 
 
-def checkDnstapQuery(testinstance, dnstap, protocol, initiator='127.0.0.1'):
+def checkDnstapQuery(testinstance, dnstap, protocol, initiator, responder):
     testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_QUERY)
-    checkDnstapBase(testinstance, dnstap, protocol, initiator)
+    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'):
+def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator, responder):
     testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.RESOLVER_RESPONSE)
-    checkDnstapBase(testinstance, dnstap, protocol, initiator)
+    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)