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')
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'))
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'))
# 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)