Verify Scapy build does not ruin raw data
authorYaroslav Brustinov <[email protected]>
Wed, 15 Mar 2017 13:28:30 +0000 (15:28 +0200)
committerYaroslav Brustinov <[email protected]>
Wed, 15 Mar 2017 13:28:30 +0000 (15:28 +0200)
Change-Id: I3792dddad68e62f13c359aede7ded8292f9a92a5
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 ba65e63..8071670 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'): 
index 8cd78b8..b22305b 100644 (file)
@@ -320,8 +320,6 @@ class Packet(BasePacket):
 
 
     def self_build(self, field_pos_list=None):
-        #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 :
@@ -339,7 +337,8 @@ class Packet(BasePacket):
                 f._offset= val
             else:
                 p = f.addfield(self, p, val)
-                
+        if self.raw_packet_cache is not None:
+            assert p == self.raw_packet_cache, 'Could not build the packet.'
         return p
 
     def do_build_payload(self):
index 9dcebcf..a9e6613 100644 (file)
@@ -34,8 +34,7 @@ class Field:
         self.default = self.any2i(None,default)
         self.sz = struct.calcsize(self.fmt)
         self.owners = []
-        self.offset =0;
-        self._offset =0
+        self._offset = 0
 
 
     def get_size_bytes (self):
index 7e0a089..8401e0c 100644 (file)
@@ -338,8 +338,6 @@ 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
         p=b""
         for f in self.fields_desc:
             #print(f.name)
@@ -359,6 +357,8 @@ class Packet(BasePacket, metaclass = Packet_metaclass):
                 f._offset= val
             else:
                 p = f.addfield(self, p, val)
+        if self.raw_packet_cache is not None:
+            assert p == self.raw_packet_cache, 'Could not build the packet.'
         return p
 
     def do_build_payload(self):