Scapy: fix offsets for GUI.
authorYaroslav Brustinov <[email protected]>
Wed, 15 Mar 2017 01:54:32 +0000 (03:54 +0200)
committerYaroslav Brustinov <[email protected]>
Wed, 15 Mar 2017 01:54:32 +0000 (03:54 +0200)
Change-Id: I0b6406fc0b9ceefb53a2ab98a441497326d9f7f0
Signed-off-by: Yaroslav Brustinov <[email protected]>
scripts/external_libs/scapy-2.3.1/python2/scapy/fields.py
scripts/external_libs/scapy-2.3.1/python2/scapy/packet.py
scripts/external_libs/scapy-2.3.1/python3/scapy/fields.py
scripts/external_libs/scapy-2.3.1/python3/scapy/packet.py

index df85875..ba65e63 100644 (file)
@@ -34,7 +34,7 @@ class Field:
         self.default = self.any2i(None,default)
         self.sz = struct.calcsize(self.fmt)
         self.owners = []
-        self.offset =0;
+        self._offset =0;
 
     def get_size_bytes (self):
         if  hasattr(self, 'size'): 
@@ -42,6 +42,9 @@ class Field:
         else:
             return self.sz
 
+    def get_size_bits(self):
+        return getattr(self, 'size', self.sz * 8)
+
     def register_owner(self, cls):
         self.owners.append(cls)
 
index 5bd2e69..8cd78b8 100644 (file)
@@ -320,8 +320,8 @@ class Packet(BasePacket):
 
 
     def self_build(self, field_pos_list=None):
-        if self.raw_packet_cache is not None:
-            return self.raw_packet_cache
+        #if self.raw_packet_cache is not None:
+        #    return self.raw_packet_cache
         p=""
         for f in self.fields_desc:
             if type(p) is tuple :
index 66ccd55..9dcebcf 100644 (file)
@@ -35,6 +35,7 @@ class Field:
         self.sz = struct.calcsize(self.fmt)
         self.owners = []
         self.offset =0;
+        self._offset =0
 
 
     def get_size_bytes (self):
@@ -43,6 +44,9 @@ class Field:
         else:
             return self.sz
 
+    def get_size_bits(self):
+        return getattr(self, 'size', self.sz * 8)
+
     def register_owner(self, cls):
         self.owners.append(cls)
 
index 5fcf57c..7e0a089 100644 (file)
@@ -338,8 +338,8 @@ class Packet(BasePacket, metaclass = Packet_metaclass):
             print ("field %-40s %02d %02d" % (f.name, f._offset,f.get_size_bytes () ) );
 
     def self_build(self, field_pos_list=None):
-        if self.raw_packet_cache is not None:
-            return self.raw_packet_cache
+        #if self.raw_packet_cache is not None:
+        #    return self.raw_packet_cache
         p=b""
         for f in self.fields_desc:
             #print(f.name)