From ccbe3b7e75ccc657e725af036666be0c14be4195 Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Tue, 29 Jul 2008 18:07:22 +0200
Subject: [PATCH] Removed deprecated APIs

Changes introduced at f4590b70c916, 7d54b4bab41d and 2ca14f7e5bdb
---
 scapy/fields.py | 59 ++++++++++++++-----------------------------------
 scapy/packet.py |  6 +----
 2 files changed, 17 insertions(+), 48 deletions(-)

diff --git a/scapy/fields.py b/scapy/fields.py
index 9e29b9bd..3e479d98 100644
--- a/scapy/fields.py
+++ b/scapy/fields.py
@@ -324,26 +324,13 @@ class IEEEDoubleField(Field):
     def __init__(self, name, default):
         Field.__init__(self, name, default, "d")
 
-import traceback
-def FIELD_LENGTH_MANAGEMENT_DEPRECATION(x):
-    try:
-        for tb in traceback.extract_stack()+[("??",-1,None,"")]:
-            f,l,_,line = tb
-            if line.startswith("fields_desc"):
-                break
-    except:
-        f,l="??",-1
-    log_loading.warning("Deprecated use of %s (%s l. %i). See http://trac.secdev.org/scapy/wiki/LengthFields" % (x,f,l))
 
 class StrField(Field):
-    def __init__(self, name, default, fmt="H", remain=0, shift=0):
+    def __init__(self, name, default, fmt="H", remain=0):
         Field.__init__(self,name,default,fmt)
         self.remain = remain        
-        self.shift = shift
-        if shift != 0:
-            FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__)
     def i2len(self, pkt, i):
-        return len(i)+self.shift
+        return len(i)
     def i2m(self, pkt, x):
         if x is None:
             x = ""
@@ -360,8 +347,8 @@ class StrField(Field):
 
 class PacketField(StrField):
     holds_packets=1
-    def __init__(self, name, default, cls, remain=0, shift=0):
-        StrField.__init__(self, name, default, remain=remain, shift=shift)
+    def __init__(self, name, default, cls, remain=0):
+        StrField.__init__(self, name, default, remain=remain)
         self.cls = cls
     def i2m(self, pkt, i):
         return str(i)
@@ -378,12 +365,9 @@ class PacketField(StrField):
     
 class PacketLenField(PacketField):
     holds_packets=1
-    def __init__(self, name, default, cls, fld=None, length_from=None, shift=0):
-        PacketField.__init__(self, name, default, cls, shift=shift)
+    def __init__(self, name, default, cls, length_from=None):
+        PacketField.__init__(self, name, default, cls)
         self.length_from = length_from
-        if fld is not None or shift != 0:
-            FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__)
-            self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift
     def getfield(self, pkt, s):
         l = self.length_from(pkt)
         i = self.m2i(pkt, s[:l])
@@ -393,17 +377,13 @@ class PacketLenField(PacketField):
 class PacketListField(PacketField):
     islist = 1
     holds_packets=1
-    def __init__(self, name, default, cls, fld=None, count_from=None, length_from=None, shift=0):
+    def __init__(self, name, default, cls, count_from=None, length_from=None):
         if default is None:
             default = []  # Create a new list for each instance
-        PacketField.__init__(self, name, default, cls, shift=shift)
+        PacketField.__init__(self, name, default, cls)
         self.count_from = count_from
         self.length_from = length_from
 
-        if fld is not None or shift != 0:
-            FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__)
-        if fld is not None:
-            self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift
 
     def any2i(self, pkt, x):
         if type(x) is not list:
@@ -449,8 +429,8 @@ class PacketListField(PacketField):
 
 
 class StrFixedLenField(StrField):
-    def __init__(self, name, default, length=None, length_from=None, shift=0):
-        StrField.__init__(self, name, default, shift=shift)
+    def __init__(self, name, default, length=None, length_from=None):
+        StrField.__init__(self, name, default)
         self.length_from  = length_from
         if length is not None:
             self.length_from = lambda pkt,length=length: length
@@ -468,8 +448,8 @@ class StrFixedLenField(StrField):
         return RandBin(l)
 
 class NetBIOSNameField(StrFixedLenField):
-    def __init__(self, name, default, length=31, shift=0):
-        StrFixedLenField.__init__(self, name, default, length, shift=shift)
+    def __init__(self, name, default, length=31):
+        StrFixedLenField.__init__(self, name, default, length)
     def i2m(self, pkt, x):
         l = self.length_from(pkt)/2
         if x is None:
@@ -484,29 +464,22 @@ class NetBIOSNameField(StrFixedLenField):
         return "".join(map(lambda x,y: chr((((ord(x)-1)&0xf)<<4)+((ord(y)-1)&0xf)), x[::2],x[1::2]))
 
 class StrLenField(StrField):
-    def __init__(self, name, default, fld=None, length_from=None, shift=0):
-        StrField.__init__(self, name, default, shift=shift)
+    def __init__(self, name, default, fld=None, length_from=None):
+        StrField.__init__(self, name, default)
         self.length_from = length_from
-        if fld is not None or shift != 0:
-            FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__)
-            self.length_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift
     def getfield(self, pkt, s):
         l = self.length_from(pkt)
         return s[l:], self.m2i(pkt,s[:l])
 
 class FieldListField(Field):
     islist=1
-    def __init__(self, name, default, field, fld=None, shift=0, length_from=None, count_from=None):
+    def __init__(self, name, default, field, length_from=None, count_from=None):
         if default is None:
             default = []  # Create a new list for each instance
         Field.__init__(self, name, default)
         self.count_from = count_from
         self.length_from = length_from
-        self.field = field
-        if fld is not None or shift != 0:
-            FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__)
-            self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift
-            
+        self.field = field            
             
     def i2count(self, pkt, val):
         if type(val) is list:
diff --git a/scapy/packet.py b/scapy/packet.py
index 6c86a1b4..7029a463 100644
--- a/scapy/packet.py
+++ b/scapy/packet.py
@@ -285,11 +285,7 @@ class Packet(BasePacket):
         for t in self.post_transforms:
             pkt = t(pkt)
         pay = self.build_payload()
-        try:
-            p = self.post_build(pkt,pay)
-        except TypeError:
-            log_runtime.error("API changed! post_build() now takes 2 arguments. Compatibility is only assured for a short transition time")
-            p = self.post_build(pkt+pay)
+        p = self.post_build(pkt,pay)
         if not internal:
             pad = self.payload.getlayer(Padding) 
             if pad: 
-- 
GitLab