[dts] [PATCH V2]dep/lldp: fix lldp for python3

Xiao Qimai qimaix.xiao at intel.com
Thu Jan 16 09:11:27 CET 2020


python3 will not allow concat str to bytes

Signed-off-by: Xiao Qimai <qimaix.xiao at intel.com>
---
 dep/lldp.py | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/dep/lldp.py b/dep/lldp.py
index 9792e05..faa3b4d 100644
--- a/dep/lldp.py
+++ b/dep/lldp.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 ## This file is part of Scapy
 ## See http://www.secdev.org/projects/scapy for more informations
 ## Copyright (C) Philippe Biondi <phil at secdev.org>
@@ -78,7 +79,7 @@ class LLDPGeneric(Packet):
     def post_build(self, p, pay):
         if self.length is None:
             l = len(p) - 2
-            p = chr((self.type << 1) ^ (l >> 8)) + chr(l & 0xff) + bytes.decode(p[2:], encoding='gbk')
+            p = chr((self.type << 1) ^ (l >> 8)).encode() + chr(l & 0xff).encode() + p[2:]
 
         return p+pay
 
@@ -211,15 +212,13 @@ class LLDPManagementAddress(LLDPGeneric):
         # TODO Remove redundant code. LLDPGeneric.post_build()
         if self.length is None:
             l = len(p) - 2
-            p = chr((self.type << 1) ^ (l >> 8)) + chr(l & 0xff) + p[2:].decode()
+            p = chr((self.type << 1) ^ (l >> 8)).encode() + chr(l & 0xff).encode() + p[2:]
 
         if self.addrlen is None:
             addrlen = len(p) - 2 - 8 - len(self.oid) + 1
-            if isinstance(p, type('abc')):
-                p = p[:2]+ struct.pack("B", addrlen).decode() + p[3:]
-            else:
-                p = p[:2].decode() + struct.pack("B", addrlen).decode() + p[3:].decode()
-        return bytes(p, encoding="utf-8")+pay
+            p = p[:2] + struct.pack("B", addrlen) + p[3:]
+
+        return p+pay
 
 
 _LLDPDot1Subtype = {1: "Port VLAN Id"}
-- 
2.17.1



More information about the dts mailing list