]> granicus.if.org Git - pdns/commitdiff
Account for the fact that udr and nod flags are optional in protobuf
authorNeil Cook <neil.cook@noware.co.uk>
Wed, 24 Oct 2018 12:35:39 +0000 (12:35 +0000)
committerNeil Cook <neil.cook@noware.co.uk>
Wed, 24 Oct 2018 12:43:25 +0000 (12:43 +0000)
contrib/ProtobufLogger.py

index 074cb942084615e6e914a4514aaf0c872fe6d0b4..c88653ce799beee38ce4db2b032312970f9eb955 100644 (file)
@@ -111,10 +111,12 @@ class PDNSPBConnHandler(object):
             for rr in response.rrs:
                 rrclass = 1
                 rdatastr = ''
+                rrudr = 0
                 if rr.HasField('class'):
                     rrclass = getattr(rr, 'class')
                 rrtype = rr.type
-                rrudr = rr.udr
+                if rr.HasField('udr'):
+                    rrudr = rr.udr
                 if (rrclass == 1 or rrclass == 255) and rr.HasField('rdata'):
                     if rrtype == 1:
                         rdatastr = socket.inet_ntop(socket.AF_INET, rr.rdata)
@@ -170,7 +172,9 @@ class PDNSPBConnHandler(object):
 
         deviceId = binascii.hexlify(bytearray(msg.deviceId))
         requestorId = msg.requestorId
-        nod = msg.newlyObservedDomain
+        nod = 0
+        if (msg.HasField('newlyObservedDomain')):
+            nod = msg.newlyObservedDomain
 
         print('[%s] %s of size %d: %s%s -> %s (%s), id: %d, uuid: %s%s '
                   'requestorid: %s deviceid: %s serverid: %s nod: %d' % (datestr,