]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Handle source and destination ports in the sample protobuf logger 8702/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 14 Jan 2020 09:13:46 +0000 (10:13 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 14 Jan 2020 14:02:11 +0000 (15:02 +0100)
contrib/ProtobufLogger.py

index c88653ce799beee38ce4db2b032312970f9eb955..a423c38f273fb49b1b947a205e1ff54d5a64d6ab 100644 (file)
@@ -138,6 +138,8 @@ class PDNSPBConnHandler(object):
             datestr = datestr + '.' + str(msg.timeUsec)
         ipfromstr = 'N/A'
         iptostr = 'N/A'
+        toportstr = ''
+        fromportstr = ''
         fromvalue = getattr(msg, 'from')
         if msg.socketFamily == dnsmessage_pb2.PBDNSMessage.INET:
             if msg.HasField('from'):
@@ -146,15 +148,21 @@ class PDNSPBConnHandler(object):
                 iptostr = socket.inet_ntop(socket.AF_INET, msg.to)
         else:
             if msg.HasField('from'):
-                ipfromstr = socket.inet_ntop(socket.AF_INET6, fromvalue)
+                ipfromstr = '[' + socket.inet_ntop(socket.AF_INET6, fromvalue) + ']'
             if msg.HasField('to'):
-                iptostr = socket.inet_ntop(socket.AF_INET6, msg.to)
+                iptostr = '[' + socket.inet_ntop(socket.AF_INET6, msg.to) + ']'
 
         if msg.socketProtocol == dnsmessage_pb2.PBDNSMessage.UDP:
             protostr = 'UDP'
         else:
             protostr = 'TCP'
 
+        if msg.HasField('fromPort'):
+            fromportstr = ':' + str(msg.fromPort) + ' '
+
+        if msg.HasField('toPort'):
+            toportstr = ':' + str(msg.toPort) + ' '
+
         messageidstr = binascii.hexlify(bytearray(msg.messageId))
 
         serveridstr = 'N/A'
@@ -176,13 +184,15 @@ class PDNSPBConnHandler(object):
         if (msg.HasField('newlyObservedDomain')):
             nod = msg.newlyObservedDomain
 
-        print('[%s] %s of size %d: %s%s -> %s (%s), id: %d, uuid: %s%s '
+        print('[%s] %s of size %d: %s%s%s -> %s%s (%s), id: %d, uuid: %s%s '
                   'requestorid: %s deviceid: %s serverid: %s nod: %d' % (datestr,
                                                     typestr,
                                                     msg.inBytes,
                                                     ipfromstr,
+                                                    fromportstr,
                                                     requestorstr,
                                                     iptostr,
+                                                    toportstr,
                                                     protostr,
                                                     msg.id,
                                                     messageidstr,