From: Otto Moerbeek Date: Wed, 7 Apr 2021 08:07:09 +0000 (+0200) Subject: Aslo test query_address for value and query_port for presence X-Git-Tag: dnsdist-1.6.0-rc1~22^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F10268%2Fhead;p=thirdparty%2Fpdns.git Aslo test query_address for value and query_port for presence --- diff --git a/regression-tests.recursor-dnssec/test_RecDnstap.py b/regression-tests.recursor-dnssec/test_RecDnstap.py index 8993f432f5..bb6aeea5de 100644 --- a/regression-tests.recursor-dnssec/test_RecDnstap.py +++ b/regression-tests.recursor-dnssec/test_RecDnstap.py @@ -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)