headerFlags = "N/A"
if msg.HasField('headerFlags'):
- headerFlags = "0x%04X" % msg.headerFlags
+ headerFlags = "0x%04X" % socket.ntohs(msg.headerFlags)
ednsVersion = "N/A"
if msg.HasField('ednsVersion'):
- ednsVersion = "0x%08X" % msg.ednsVersion
+ ednsVersion = "0x%08X" % socket.ntohl(msg.ednsVersion)
print('[%s] %s of size %d: %s%s%s -> %s%s(%s) id: %d uuid: %s%s '
'requestorid: %s deviceid: %s devicename: %s serverid: %s nod: %s workerId: %s pcCacheHit: %s outgoingQueries: %s headerFlags: %s ednsVersion: %s' %
for (const auto& mit : meta) {
msg.setMeta(mit.first, mit.second.stringVal, mit.second.intVal);
}
- msg.setHeaderFlags(htons(*getFlagsFromDNSHeader(&header)));
+ msg.setHeaderFlags(*getFlagsFromDNSHeader(&header));
if (ednsVersion) {
msg.setEDNSVersion(*ednsVersion);
}
self.assertTrue(msg.question.HasField('qName'))
self.assertEqual(msg.question.qName, qname)
+ # This method takes wire format values to check
+ def checkProtobufHeaderFlagsAndEDNSVersion(self, msg, flags, ednsVersion):
+ self.assertTrue(msg.HasField('headerFlags'))
+ self.assertEqual(msg.headerFlags, socket.htons(flags))
+ self.assertTrue(msg.HasField('ednsVersion'))
+ self.assertEqual(msg.ednsVersion, socket.htonl(ednsVersion))
+
def checkProtobufResponse(self, msg, protocol, response, initiator='127.0.0.1', receivedSize=None, vstate=dnsmessage_pb2.PBDNSMessage.VState.Indeterminate):
self.assertEqual(msg.type, dnsmessage_pb2.PBDNSMessage.DNSResponseType)
self.checkProtobufBase(msg, protocol, response, initiator, receivedSize=receivedSize)
# check the protobuf messages corresponding to the UDP query and answer
msg = self.getFirstProtobufMessage()
self.checkProtobufQuery(msg, dnsmessage_pb2.PBDNSMessage.UDP, query, dns.rdataclass.IN, dns.rdatatype.A, name)
+ # wire format, RD and CD set in headerflags, plus DO bit in flags part of EDNS Version
+ self.checkProtobufHeaderFlagsAndEDNSVersion(msg, 0x0110, 0x00008000)
# then the response
msg = self.getFirstProtobufMessage()
self.checkProtobufResponse(msg, dnsmessage_pb2.PBDNSMessage.UDP, res, '127.0.0.1')