From 4cca8708a5fdc52e592aa2661ab7c4b06fd539b3 Mon Sep 17 00:00:00 2001 From: Pierre LALET <pierre.lalet@cea.fr> Date: Sun, 17 Jan 2016 21:28:10 +0100 Subject: [PATCH] Remove unneeded lists (primarily range() calls) --- scapy/arch/windows/__init__.py | 20 +- scapy/asn1/asn1.py | 14 +- scapy/asn1/ber.py | 4 +- scapy/asn1/mib.py | 4 +- scapy/contrib/HomePlugAV.py | 2 +- scapy/contrib/bgp.py | 3 +- scapy/contrib/cdp.py | 14 +- scapy/contrib/gsm_um.py | 549 +++++++-------------------------- scapy/contrib/gtp.py | 6 +- scapy/contrib/ikev2.py | 9 +- scapy/contrib/isis.py | 2 +- scapy/contrib/ldp.py | 2 +- scapy/contrib/ppi_geotag.py | 12 +- scapy/contrib/skinny.py | 2 +- scapy/contrib/vxlan.py | 2 +- scapy/crypto/cert.py | 23 +- scapy/fields.py | 8 +- scapy/layers/dhcp.py | 2 +- scapy/layers/inet.py | 14 +- scapy/layers/ipsec.py | 4 +- scapy/layers/isakmp.py | 9 +- scapy/layers/tftp.py | 4 +- scapy/main.py | 2 +- scapy/modules/nmap.py | 4 +- scapy/modules/p0f.py | 2 +- scapy/modules/voip.py | 2 +- scapy/plist.py | 38 +-- scapy/route.py | 4 +- scapy/route6.py | 4 +- scapy/sendrecv.py | 18 +- scapy/tools/UTscapy.py | 2 +- scapy/utils.py | 22 +- scapy/utils6.py | 12 +- scapy/volatile.py | 21 +- test/regression.uts | 2 +- 35 files changed, 257 insertions(+), 585 deletions(-) diff --git a/scapy/arch/windows/__init__.py b/scapy/arch/windows/__init__.py index 31808eb8..4fbed76c 100755 --- a/scapy/arch/windows/__init__.py +++ b/scapy/arch/windows/__init__.py @@ -113,7 +113,7 @@ class NetworkInterface(object): # because only the IP is available in both pypcap and dnet. # This may not work with unorthodox network configurations and is # slow because we have to walk through the Windows registry. - for n in range(30): + for n in xrange(30): guess = "eth%s" % n win_name = pcapdnet.pcap.ex_name(guess) if win_name.endswith("}"): @@ -410,19 +410,19 @@ def sndrcv(pks, pkt, timeout = 2, inter = 0, verbose=None, chainCC=0, retry=0, m h = r.hashret() if h in hsent: hlst = hsent[h] - for i in range(len(hlst)): - if r.answers(hlst[i]): - ans.append((hlst[i],r)) + for i, sentpkt in enumerate(hlst): + if r.answers(sentpkt): + ans.append((sentpkt, r)) if verbose > 1: os.write(1, "*") - ok = 1 + ok = 1 if not multi: - del(hlst[i]) - notans -= 1; + del hlst[i] + notans -= 1 else: - if not hasattr(hlst[i], '_answered'): - notans -= 1; - hlst[i]._answered = 1; + if not hasattr(sentpkt, '_answered'): + notans -= 1 + sentpkt._answered = 1 break if notans == 0 and not multi: break diff --git a/scapy/asn1/asn1.py b/scapy/asn1/asn1.py index 20970679..841ed901 100644 --- a/scapy/asn1/asn1.py +++ b/scapy/asn1/asn1.py @@ -15,10 +15,11 @@ from scapy.utils import Enum_metaclass, EnumElement class RandASN1Object(RandField): def __init__(self, objlist=None): - if objlist is None: - objlist = map(lambda x:x._asn1_obj, - filter(lambda x:hasattr(x,"_asn1_obj"), ASN1_Class_UNIVERSAL.__rdict__.values())) - self.objlist = objlist + self.objlist = [ + x._asn1_obj + for x in ASN1_Class_UNIVERSAL.__rdict__.itervalues() + if hasattr(x, "_asn1_obj") + ] if objlist is None else objlist self.chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" def _fix(self, n=0): o = random.choice(self.objlist) @@ -29,10 +30,11 @@ class RandASN1Object(RandField): return o(z) elif issubclass(o, ASN1_STRING): z = int(random.expovariate(0.05)+1) - return o("".join([random.choice(self.chars) for i in range(z)])) + return o("".join(random.choice(self.chars) for _ in xrange(z))) elif issubclass(o, ASN1_SEQUENCE) and (n < 10): z = int(random.expovariate(0.08)+1) - return o(map(lambda x:x._fix(n+1), [self.__class__(objlist=self.objlist)]*z)) + return o([self.__class__(objlist=self.objlist)._fix(n + 1) + for _ in xrange(z)]) return ASN1_INTEGER(int(random.gauss(0,1000))) diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py index 622cb496..fe180e1c 100644 --- a/scapy/asn1/ber.py +++ b/scapy/asn1/ber.py @@ -89,8 +89,8 @@ def BER_num_enc(l, size=1): return "".join([chr(k) for k in x]) def BER_num_dec(s): x = 0 - for i in range(len(s)): - c = ord(s[i]) + for i, c in enumerate(s): + c = ord(c) x <<= 7 x |= c&0x7f if not c&0x80: diff --git a/scapy/asn1/mib.py b/scapy/asn1/mib.py index 8531fcf2..cd0fa65e 100644 --- a/scapy/asn1/mib.py +++ b/scapy/asn1/mib.py @@ -128,8 +128,8 @@ def load_mib(filenames): ident,oid = gr[0],gr[-1] ident=fixname(ident) oid = oid.split() - for i in range(len(oid)): - m = _mib_re_both.match(oid[i]) + for i, elt in enumerate(oid): + m = _mib_re_both.match(elt) if m: oid[i] = m.groups()[1] mib_register(ident, oid, the_mib, unresolved) diff --git a/scapy/contrib/HomePlugAV.py b/scapy/contrib/HomePlugAV.py index 8076e8d0..20022c67 100644 --- a/scapy/contrib/HomePlugAV.py +++ b/scapy/contrib/HomePlugAV.py @@ -427,7 +427,7 @@ ModuleIDList = { 0x00 : "MAC Soft-Loader Image", def chksum32(data): cksum = 0 - for i in range(0, len(data), 4): + for i in xrange(0, len(data), 4): cksum = (cksum ^ struct.unpack('<I', data[i:i+4])[0]) & 0xffffffff return (~cksum) & 0xffffffff diff --git a/scapy/contrib/bgp.py b/scapy/contrib/bgp.py index 525dac5f..61655e37 100644 --- a/scapy/contrib/bgp.py +++ b/scapy/contrib/bgp.py @@ -41,7 +41,8 @@ class BGPIPField(Field): return s[l:], self.m2i(pkt,s[:l]) def m2i(self,pkt,m): mask = struct.unpack(">B",m[0])[0] - ip = "".join( [ m[i + 1] if i < self.mask2iplen(mask) else '\x00' for i in range(4)] ) + ip = "".join(m[i + 1] if i < self.mask2iplen(mask) else '\x00' + for i in xrange(4)) return (mask,inet_ntoa(ip)) class BGPHeader(Packet): diff --git a/scapy/contrib/cdp.py b/scapy/contrib/cdp.py index fc4dad4e..cd1cc4d8 100644 --- a/scapy/contrib/cdp.py +++ b/scapy/contrib/cdp.py @@ -178,13 +178,13 @@ class CDPMsgPortID(CDPMsgGeneric): StrLenField("iface", "Port 1", length_from=lambda x:x.len - 4) ] -_cdp_capabilities = [ "Router", - "TransparentBridge", - "SourceRouteBridge", - "Switch", - "Host", - "IGMPCapable", - "Repeater"] + map(lambda x: "Bit%d" % x, range(25,0,-1)) +_cdp_capabilities = ["Router", + "TransparentBridge", + "SourceRouteBridge", + "Switch", + "Host", + "IGMPCapable", + "Repeater"] + ["Bit%d" % x for x in xrange(25, 0, -1)] class CDPMsgCapabilities(CDPMsgGeneric): diff --git a/scapy/contrib/gsm_um.py b/scapy/contrib/gsm_um.py index cd6b9b05..923d80b7 100644 --- a/scapy/contrib/gsm_um.py +++ b/scapy/contrib/gsm_um.py @@ -2923,18 +2923,13 @@ class MobileIdHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i, None)) # this list holds the values of -# the variables, the INTERESSTING value! + # this list holds the values of the variables, the + # INTERESTING value! + a = [getattr(self, fld.name, None) for fld in self.fields_desc] res = adapt(3, 11, a, self.fields_desc) if self.lengthMI is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] print repr(p) return p + pay @@ -3510,20 +3505,11 @@ class BaRangeHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - print "i is %s" % (i,) - aList.append(self.fields_desc[i].name) - print "aList %s" % (len(aList)) - print "self.fields_desc %s" % (len(self.fields_desc)) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(6, 251, a, self.fields_desc) if self.lengthBR is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -3950,17 +3936,11 @@ class GroupChannelDescriptionHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 13, a, self.fields_desc) if self.lengthGCD is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -4006,19 +3986,13 @@ class IaRestOctets(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 12, a, self.fields_desc) if self.lengthIRO is None: if res[1] < 0: # FIXME better fix res[1] = 0 p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -4179,17 +4153,11 @@ class MobileAllocationHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 10, a, self.fields_desc) if self.lengthMA is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -4243,17 +4211,11 @@ class MultiRateConfigurationHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 8, a, self.fields_desc) if self.lengthMRC is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -4283,15 +4245,9 @@ class MultislotAllocationHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 12, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthMSA is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -4697,17 +4653,11 @@ class Si4RestOctets(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 11, a, self.fields_desc, 1) if self.lengthSI4 is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if len(p) is 1: # length of this packet can be 0, but packet is p = '' # but the IE is manadatory 0_o @@ -5385,17 +5335,11 @@ class ApduDataHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 251, a, self.fields_desc) if self.lengthAD is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -5748,17 +5692,11 @@ class NetworkNameHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 251, a, self.fields_desc) if self.lengthNN is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6002,17 +5940,11 @@ class BearerCapabilityHdr(Packet): lambda pkt: pkt.ext12 == 0) ] -# We have a bug here. packet is not working if used in message + # We have a bug here. packet is not working if used in message def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 15, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] # avoids a bug. find better way if len(p) is 5: @@ -6161,17 +6093,11 @@ class CalledPartyBcdNumberHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 43, a, self.fields_desc, 2) if self.lengthCPBN is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6213,17 +6139,11 @@ class CalledPartySubaddressHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 23, a, self.fields_desc) if self.lengthCPS is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6281,15 +6201,9 @@ class CallingPartyBcdNumberHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 14, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthCPBN is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -6333,17 +6247,11 @@ class CallingPartySubaddressHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 23, a, self.fields_desc) if self.lengthCPS is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6401,15 +6309,9 @@ class CauseHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 32, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthC is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -6507,16 +6409,9 @@ class ConnectedNumberHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - sum1 = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 14, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthCN is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -6561,17 +6456,11 @@ class ConnectedSubaddressHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 23, a, self.fields_desc) if self.lengthCS is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6837,17 +6726,11 @@ class FacilityHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 251, a, self.fields_desc) if self.lengthF is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -6877,15 +6760,9 @@ class HighLayerCompatibilityHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 5, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthHLC is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -6933,17 +6810,11 @@ class LowLayerCompatibilityHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 15, a, self.fields_desc) if self.lengthLLC is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -7065,15 +6936,9 @@ class RedirectingPartyBcdNumberHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 19, a, self.fields_desc) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthRPBN is None: p = p[:1] + struct.pack(">B", len(p)-2) + p[2:] @@ -7118,17 +6983,11 @@ class RedirectingPartySubaddressHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 23, a, self.fields_desc) if self.lengthRPS is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -7411,17 +7270,11 @@ class SetupContainerHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 251, a, self.fields_desc) if self.lengthSC is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -7697,17 +7550,11 @@ class SsVersionIndicatorHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 251, a, self.fields_desc) if self.lengthSVI is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -7862,17 +7709,11 @@ class UserUserHdr(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 131, a, self.fields_desc) if self.lengthUU is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -8130,17 +7971,11 @@ class ReceiveNpduNumbersList(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 19, a, self.fields_desc) if self.lengthRNNL is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -8396,17 +8231,11 @@ class AccessPointName(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 102, a, self.fields_desc) if self.lengthAPN is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -8769,17 +8598,11 @@ class ProtocolConfigurationOptions(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 253, a, self.fields_desc) if self.lengthPCO is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -8817,17 +8640,11 @@ class PacketDataProtocolAddress(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 20, a, self.fields_desc) if self.lengthPDPA is None: p = p[:1] + struct.pack(">B", res[1]) + p[2:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -8996,17 +8813,11 @@ class MobileId(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 10, a, self.fields_desc, 1) if self.lengthMI is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -9529,17 +9340,11 @@ class BaRange(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(5, 253, a, self.fields_desc, 1) if self.lengthBR is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -9876,17 +9681,11 @@ class GroupChannelDescription(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(4, 13, a, self.fields_desc, 1) if self.lengthGCD is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -10059,17 +9858,11 @@ class MobileAllocation(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 9, a, self.fields_desc, 1) if self.lengthMA is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -10123,17 +9916,11 @@ class MultiRateConfiguration(Packet): def post_build(self, p, pay): # we set the length - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 7, a, self.fields_desc, 1) if self.lengthMRC is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -10161,15 +9948,9 @@ class MultislotAllocation(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 11, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthMSA is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -10776,17 +10557,11 @@ class ApduData(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 250, a, self.fields_desc, 1) if self.lengthAD is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay # @@ -11058,17 +10833,11 @@ class NetworkName(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 250, a, self.fields_desc, 1) if self.lengthNN is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -11282,15 +11051,9 @@ class BearerCapability(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 15, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthBC is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -11429,17 +11192,11 @@ class CalledPartyBcdNumber(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 42, a, self.fields_desc, 1) if self.lengthCPBN is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -11479,17 +11236,11 @@ class CalledPartySubaddress(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 23, a, self.fields_desc, 1) if self.lengthCPS is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -11545,15 +11296,9 @@ class CallingPartyBcdNumber(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 13, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthCPBN is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -11595,17 +11340,11 @@ class CallingPartySubaddress(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 22, a, self.fields_desc, 1) if self.lengthCPS is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -11661,15 +11400,9 @@ class Cause(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(3, 31, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthC is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -11751,15 +11484,9 @@ class ConnectedNumber(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 13, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthCN is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -11802,17 +11529,11 @@ class ConnectedSubaddress(Packet): ] def post_build(self, p, pay): - aList = [] - a = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 22, a, self.fields_desc, 1) if self.lengthCS is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -12076,17 +11797,11 @@ class Facility(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(7, 250, a, self.fields_desc, 1) if self.lengthF is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -12114,15 +11829,9 @@ class HighLayerCompatibility(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 4, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthHLC is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -12166,17 +11875,11 @@ class LowLayerCompatibility(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 14, a, self.fields_desc, 1) if self.lengthLLC is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -12288,15 +11991,9 @@ class RedirectingPartyBcdNumber(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 18, a, self.fields_desc, 1) - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] if self.lengthRPBN is None: p = struct.pack(">B", len(p)-1) + p[1:] @@ -12339,17 +12036,11 @@ class RedirectingPartySubaddress(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 22, a, self.fields_desc, 1) if self.lengthRPS is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -12621,17 +12312,11 @@ class SetupContainer(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 250, a, self.fields_desc, 1) if self.lengthSC is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -12903,17 +12588,11 @@ class SsVersionIndicator(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(1, 250, a, self.fields_desc, 1) if self.lengthSVI is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay @@ -13066,17 +12745,11 @@ class UserUser(Packet): ] def post_build(self, p, pay): - aList = [] - i = 0 - for i in range(0, len(self.fields_desc)): - aList.append(self.fields_desc[i].name) - a = [] - for i in aList: - a.append(getattr(self, i)) + a = [getattr(self, fld.name) for fld in self.fields_desc] res = adapt(2, 133, a, self.fields_desc, 1) if self.lengthUU is None: p = struct.pack(">B", res[1]) + p[1:] - if res[0] is not 0: + if res[0] != 0: p = p[:-res[0]] return p + pay diff --git a/scapy/contrib/gtp.py b/scapy/contrib/gtp.py index 3677ee7a..e7febc23 100644 --- a/scapy/contrib/gtp.py +++ b/scapy/contrib/gtp.py @@ -113,8 +113,8 @@ class TBCDByteField(StrFixedLenField): def i2h(self, pkt, val): ret = [] - for i in range(len(val)): - byte = ord(val[i]) + for v in val: + byte = ord(v) left = byte >> 4 right = byte & 0xF if left == 0xF: @@ -128,7 +128,7 @@ class TBCDByteField(StrFixedLenField): def i2m(self, pkt, val): ret_string = "" - for i in range(0, len(val), 2): + for i in xrange(0, len(val), 2): tmp = val[i:i+2] if len(tmp) == 2: ret_string += chr(int(tmp[1] + tmp[0], 16)) diff --git a/scapy/contrib/ikev2.py b/scapy/contrib/ikev2.py index fd38b80c..bdcb4ace 100644 --- a/scapy/contrib/ikev2.py +++ b/scapy/contrib/ikev2.py @@ -337,13 +337,12 @@ class IKEv2_payload_Encrypted(IKEv2_class): IKEv2_payload_type_overload = {} -for i in range(len(IKEv2_payload_type)): - name = "IKEv2_payload_%s" % IKEv2_payload_type[i] +for i, payloadname in enumerate(IKEv2_payload_type): + name = "IKEv2_payload_%s" % payloadname if name in globals(): - IKEv2_payload_type_overload[globals()[name]] = {"next_payload":i} + IKEv2_payload_type_overload[globals()[name]] = {"next_payload": i} -del(i) -del(name) +del i, payloadname, name IKEv2_class.overload_fields = IKEv2_payload_type_overload.copy() split_layers(UDP, ISAKMP, sport=500) diff --git a/scapy/contrib/isis.py b/scapy/contrib/isis.py index f1631c25..c5b716be 100644 --- a/scapy/contrib/isis.py +++ b/scapy/contrib/isis.py @@ -140,7 +140,7 @@ class _ISIS_RandId(RandString): val = () - for _ in range(self.bytecount): + for _ in xrange(self.bytecount): val += (RandByte(),) return self.format % val diff --git a/scapy/contrib/ldp.py b/scapy/contrib/ldp.py index bc2464ab..8fc939c9 100644 --- a/scapy/contrib/ldp.py +++ b/scapy/contrib/ldp.py @@ -132,7 +132,7 @@ class AddressTLVField(StrField): nbr /= 4 x=x[6:] list=[] - for i in range(0,nbr): + for i in xrange(0, nbr): add = x[4*i:4*i+4] list.append(inet_ntoa(add)) return list diff --git a/scapy/contrib/ppi_geotag.py b/scapy/contrib/ppi_geotag.py index 2c6620f9..106f9224 100644 --- a/scapy/contrib/ppi_geotag.py +++ b/scapy/contrib/ppi_geotag.py @@ -239,8 +239,8 @@ class HCSIFlagsField(FlagsField): if val is None: val = 0 if (pkt): - for i in range(len(self.names)): - name = self.names[i][0] + for i, name in enumerate(self.names): + name = name[0] value = pkt.getfieldval(name) if value is not None: val |= 1 << i @@ -260,7 +260,7 @@ class HCSIAppField(StrFixedLenField): def _FlagsList(myfields): flags = [] - for i in range(32): + for i in xrange(32): flags.append("Reserved%02d" % i) for i in myfields.keys(): flags[i] = myfields[i] @@ -303,10 +303,10 @@ def _HCSITest(pkt, ibit, name): # Wrap optional fields in ConditionalField, add HCSIFlagsField def _HCSIBuildFields(fields): names = [f.name for f in fields] - cond_fields = [ HCSIFlagsField('present', None, -len(names), names)] - for i in range(len(names)): + cond_fields = [HCSIFlagsField('present', None, -len(names), names)] + for i, name in enumerate(names): ibit = 1 << i - seval = "lambda pkt:_HCSITest(pkt,%s,'%s')" % (ibit, names[i]) + seval = "lambda pkt:_HCSITest(pkt,%s,'%s')" % (ibit, name) test = eval(seval) cond_fields.append(ConditionalField(fields[i], test)) return cond_fields diff --git a/scapy/contrib/skinny.py b/scapy/contrib/skinny.py index 8b686822..41cbaa0a 100644 --- a/scapy/contrib/skinny.py +++ b/scapy/contrib/skinny.py @@ -355,7 +355,7 @@ _skinny_message_callinfo_restrictions = ['CallerName' , 'OriginalCalledName' , 'OriginalCalledNumber' , 'LastRedirectName' - , 'LastRedirectNumber'] + ['Bit%d' % i for i in range(8,15)] + , 'LastRedirectNumber'] + ['Bit%d' % i for i in xrange(8,15)] class SkinnyMessageCallInfo(Packet): name='call information' fields_desc = [ StrFixedLenField("callername", "Jean Valjean", 40), diff --git a/scapy/contrib/vxlan.py b/scapy/contrib/vxlan.py index d635eefe..dec7a0be 100644 --- a/scapy/contrib/vxlan.py +++ b/scapy/contrib/vxlan.py @@ -10,7 +10,7 @@ from scapy.layers.l2 import Ether from scapy.layers.inet import UDP from scapy.fields import FlagsField, XByteField, ThreeBytesField -_VXLAN_FLAGS = ['R' for i in range(0, 24)] + ['R', 'R', 'R', 'I', 'R', 'R', 'R', 'R', 'R'] +_VXLAN_FLAGS = ['R' for _ in xrange(0, 24)] + ['R', 'R', 'R', 'I', 'R', 'R', 'R', 'R', 'R'] class VXLAN(Packet): diff --git a/scapy/crypto/cert.py b/scapy/crypto/cert.py index e6c00496..1d383650 100644 --- a/scapy/crypto/cert.py +++ b/scapy/crypto/cert.py @@ -216,7 +216,7 @@ def pkcs_emsa_pss_encode(M, emBits, h, mgf, sLen): rem = 8*emLen - emBits - 8*l # additionnal bits andMask = l*'\x00' if rem: - j = chr(reduce(lambda x,y: x+y, map(lambda x: 1<<x, range(8-rem)))) + j = chr(sum(1<<x for x in xrange(8 - rem))) andMask += j l += 1 maskedDB = strand(maskedDB[:l], andMask) + maskedDB[l:] @@ -258,8 +258,7 @@ def pkcs_emsa_pss_verify(M, EM, emBits, h, mgf, sLen): rem = 8*emLen - emBits - 8*l # additionnal bits andMask = l*'\xff' if rem: - val = reduce(lambda x,y: x+y, map(lambda x: 1<<x, range(8-rem))) - j = chr(~val & 0xff) + j = chr(~sum(1 << x for x in xrange(8 - rem)) & 0xff) andMask += j l += 1 if strand(maskedDB[:l], andMask) != '\x00'*l: @@ -270,7 +269,7 @@ def pkcs_emsa_pss_verify(M, EM, emBits, h, mgf, sLen): rem = 8*emLen - emBits - 8*l # additionnal bits andMask = l*'\x00' if rem: - j = chr(reduce(lambda x,y: x+y, map(lambda x: 1<<x, range(8-rem)))) + j = chr(sum(1 << x for x in xrange(8 - rem))) andMask += j l += 1 DB = strand(DB[:l], andMask) + DB[l:] @@ -1281,14 +1280,14 @@ class PubKey(OSSLHelper, _EncryptAndVerify): newkey = 0 # skip fields we have already seen, this is the purpose of 'i' - for j in range(i, self.possible_fields_count): + for j in xrange(i, self.possible_fields_count): f = self.possible_fields[j] if l.startswith(f): fields_dict[k] = cur cur = l[len(f):] + '\n' k = f newkey = 1 - i = j+1 + i = j + 1 break if newkey == 1: continue @@ -1441,14 +1440,14 @@ class Key(OSSLHelper, _DecryptAndSignMethods, _EncryptAndVerify): newkey = 0 # skip fields we have already seen, this is the purpose of 'i' - for j in range(i, self.possible_fields_count): + for j in xrange(i, self.possible_fields_count): f = self.possible_fields[j] if l.startswith(f): fields_dict[k] = cur cur = l[len(f):] + '\n' k = f newkey = 1 - i = j+1 + i = j + 1 break if newkey == 1: continue @@ -1662,14 +1661,14 @@ class Cert(OSSLHelper, _EncryptAndVerify): newkey = 0 # skip fields we have already seen, this is the purpose of 'i' - for j in range(i, self.possible_fields_count): + for j in xrange(i, self.possible_fields_count): f = self.possible_fields[j] if l.startswith(f): fields_dict[k] = cur cur = l[len(f):] + '\n' k = f newkey = 1 - i = j+1 + i = j + 1 break if newkey == 1: continue @@ -2333,14 +2332,14 @@ class CRL(OSSLHelper): newkey = 0 # skip fields we have already seen, this is the purpose of 'i' - for j in range(i, self.possible_fields_count): + for j in xrange(i, self.possible_fields_count): f = self.possible_fields[j] if l.startswith(f): fields_dict[k] = cur cur = l[len(f):] + '\n' k = f newkey = 1 - i = j+1 + i = j + 1 break if newkey == 1: continue diff --git a/scapy/fields.py b/scapy/fields.py index 4d05feb9..f06241ce 100644 --- a/scapy/fields.py +++ b/scapy/fields.py @@ -683,7 +683,7 @@ class BitField(Field): bytes = struct.unpack('!%dB' % nb_bytes , w) b = 0L - for c in range(nb_bytes): + for c in xrange(nb_bytes): b |= long(bytes[c]) << (nb_bytes-c-1)*8 # get rid of high order bits @@ -727,11 +727,11 @@ class EnumField(Field): i2s = self.i2s = {} s2i = self.s2i = {} if type(enum) is list: - keys = xrange(len(enum)) + keys = range(len(enum)) else: keys = enum.keys() - if filter(lambda x: type(x) is str, keys): - i2s,s2i = s2i,i2s + if any(type(x) is str for x in keys): + i2s, s2i = s2i, i2s for k in keys: i2s[k] = enum[k] s2i[enum[k]] = k diff --git a/scapy/layers/dhcp.py b/scapy/layers/dhcp.py index 66d27722..ebd8f67c 100644 --- a/scapy/layers/dhcp.py +++ b/scapy/layers/dhcp.py @@ -168,7 +168,7 @@ class RandDHCPOptions(RandField): self._opts.remove("end") def _fix(self): op = [] - for k in range(self.size): + for k in xrange(self.size): o = random.choice(self._opts) if type(o) is str: op.append((o,self.rndstr*1)) diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index 4b669461..df3d70da 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -412,7 +412,7 @@ class IP(Packet, IPTools): for p in fl: s = str(p[fnb].payload) nb = (len(s)+fragsize-1)/fragsize - for i in range(nb): + for i in xrange(nb): q = p.copy() del(q[fnb].payload) del(q[fnb].chksum) @@ -750,7 +750,7 @@ def fragment(pkt, fragsize=1480): for p in pkt: s = str(p[IP].payload) nb = (len(s)+fragsize-1)/fragsize - for i in range(nb): + for i in xrange(nb): q = p.copy() del(q[IP].payload) del(q[IP].chksum) @@ -1005,7 +1005,7 @@ class TracerouteResult(SndRcvList): tr = trace[i] tr3d[i] = [] ttl = tr.keys() - for t in range(1,max(ttl)+1): + for t in xrange(1,max(ttl)+1): if t not in rings: rings[t] = [] if t in tr: @@ -1018,7 +1018,7 @@ class TracerouteResult(SndRcvList): for t in rings: r = rings[t] l = len(r) - for i in range(l): + for i in xrange(l): if r[i][1] == -1: col = (0.75,0.75,0.75) elif r[i][1]: @@ -1104,7 +1104,7 @@ class TracerouteResult(SndRcvList): for trace_id in rt: trace = rt[trace_id] loctrace = [] - for i in range(max(trace.keys())): + for i in xrange(max(trace.keys())): ip = trace.get(i,None) if ip is None: continue @@ -1174,7 +1174,7 @@ class TracerouteResult(SndRcvList): for rtk in rt: trace = rt[rtk] k = trace.keys() - for n in range(min(k), max(k)): + for n in xrange(min(k), max(k)): if not trace.has_key(n): trace[n] = unknown_label.next() if not ports_done.has_key(rtk): @@ -1267,7 +1267,7 @@ class TracerouteResult(SndRcvList): s += '\t\tedge [color="#%s%s%s"];\n' % forecolorlist.next() trace = rt[rtk] k = trace.keys() - for n in range(min(k), max(k)): + for n in xrange(min(k), max(k)): s += '\t%s ->\n' % trace[n] s += '\t%s;\n' % trace[max(k)] diff --git a/scapy/layers/ipsec.py b/scapy/layers/ipsec.py index 6004dd0f..588ac42d 100644 --- a/scapy/layers/ipsec.py +++ b/scapy/layers/ipsec.py @@ -283,9 +283,7 @@ class CryptAlgo(object): esp.padlen = -data_len % align # padding must be an array of bytes starting from 1 to padlen - esp.padding = '' - for b in range(1, esp.padlen + 1): - esp.padding += chr(b) + esp.padding = ''.join(chr(b) for b in xrange(1, esp.padlen + 1)) # If the following test fails, it means that this algo does not comply # with the RFC diff --git a/scapy/layers/isakmp.py b/scapy/layers/isakmp.py index 9c54bed4..e7ab564b 100644 --- a/scapy/layers/isakmp.py +++ b/scapy/layers/isakmp.py @@ -331,13 +331,12 @@ class ISAKMP_payload_Hash(ISAKMP_class): ISAKMP_payload_type_overload = {} -for i in range(len(ISAKMP_payload_type)): - name = "ISAKMP_payload_%s" % ISAKMP_payload_type[i] +for i, payloadname in enumerate(ISAKMP_payload_type): + name = "ISAKMP_payload_%s" % payloadname if name in globals(): - ISAKMP_payload_type_overload[globals()[name]] = {"next_payload":i} + ISAKMP_payload_type_overload[globals()[name]] = {"next_payload": i} -del(i) -del(name) +del i, payloadname, name ISAKMP_class.overload_fields = ISAKMP_payload_type_overload.copy() diff --git a/scapy/layers/tftp.py b/scapy/layers/tftp.py index 1535e99c..9a2aa0a5 100644 --- a/scapy/layers/tftp.py +++ b/scapy/layers/tftp.py @@ -227,8 +227,8 @@ class TFTP_write(Automaton): # BEGIN @ATMT.state(initial=1) def BEGIN(self): - self.data = [ self.origdata[i*self.blocksize:(i+1)*self.blocksize] - for i in range( len(self.origdata)/self.blocksize+1) ] + self.data = [self.origdata[i*self.blocksize:(i+1)*self.blocksize] + for i in xrange( len(self.origdata)/self.blocksize+1)] self.my_tid = self.sport or RandShort()._fix() bind_bottom_up(UDP, TFTP, dport=self.my_tid) self.server_tid = None diff --git a/scapy/main.py b/scapy/main.py index 0fce8c3e..149ac6e4 100644 --- a/scapy/main.py +++ b/scapy/main.py @@ -59,7 +59,7 @@ def _load(module): __builtin__.__dict__.update(mod.__dict__) except Exception,e: log_interactive.error(e) - + def load_module(name): _load("scapy.modules."+name) diff --git a/scapy/modules/nmap.py b/scapy/modules/nmap.py index ef064643..50abec1d 100644 --- a/scapy/modules/nmap.py +++ b/scapy/modules/nmap.py @@ -71,9 +71,9 @@ nmap_kdb = NmapKnowledgeBase(conf.nmap_base) def TCPflags2str(f): fl="FSRPAUEC" s="" - for i in range(len(fl)): + for fli in fl: if f & 1: - s = fl[i]+s + s = fli + s f >>= 1 return s diff --git a/scapy/modules/p0f.py b/scapy/modules/p0f.py index d051779d..2585adb6 100644 --- a/scapy/modules/p0f.py +++ b/scapy/modules/p0f.py @@ -244,7 +244,7 @@ def p0f_correl(x,y): yopt = y[4].split(",") if len(xopt) == len(yopt): same = True - for i in range(len(xopt)): + for i in xrange(len(xopt)): if not (xopt[i] == yopt[i] or (len(yopt[i]) == 2 and len(xopt[i]) > 1 and yopt[i][1] == "*" and xopt[i][0] == yopt[i][0]) or diff --git a/scapy/modules/voip.py b/scapy/modules/voip.py index 70000a54..b2542b4d 100644 --- a/scapy/modules/voip.py +++ b/scapy/modules/voip.py @@ -26,7 +26,7 @@ def merge(x,y,sample_size=2): x += "\x00"*(len(y)-len(x)) m = "" ss=sample_size - for i in range(len(x)/ss): + for i in xrange(len(x)/ss): m += x[ss*i:ss*(i+1)]+y[ss*i:ss*(i+1)] return m # return "".join(map(str.__add__, x, y)) diff --git a/scapy/plist.py b/scapy/plist.py index 92d7c3eb..11e3a848 100644 --- a/scapy/plist.py +++ b/scapy/plist.py @@ -101,19 +101,19 @@ lfilter: truth function to apply to each packet to decide whether it will be dis print self._elt2sum(r) else: print prn(r) - def nsummary(self,prn=None, lfilter=None): + def nsummary(self, prn=None, lfilter=None): """prints a summary of each packet with the packet's number prn: function to apply to each packet instead of lambda x:x.summary() lfilter: truth function to apply to each packet to decide whether it will be displayed""" - for i in range(len(self.res)): + for i, res in enumerate(self.res): if lfilter is not None: - if not lfilter(self.res[i]): + if not lfilter(res): continue print conf.color_theme.id(i,fmt="%04i"), if prn is None: - print self._elt2sum(self.res[i]) + print self._elt2sum(res) else: - print prn(self.res[i]) + print prn(res) def display(self): # Deprecated. Use show() """deprecated. is show()""" self.show() @@ -188,43 +188,43 @@ lfilter: truth function to apply to each packet to decide whether it will be dis def hexraw(self, lfilter=None): """Same as nsummary(), except that if a packet has a Raw layer, it will be hexdumped lfilter: a truth function that decides whether a packet must be displayed""" - for i in range(len(self.res)): - p = self._elt2pkt(self.res[i]) + for i, res in enumerate(self.res): + p = self._elt2pkt(res) if lfilter is not None and not lfilter(p): continue print "%s %s %s" % (conf.color_theme.id(i,fmt="%04i"), p.sprintf("%.time%"), - self._elt2sum(self.res[i])) + self._elt2sum(res)) if p.haslayer(conf.raw_layer): hexdump(p.getlayer(conf.raw_layer).load) def hexdump(self, lfilter=None): """Same as nsummary(), except that packets are also hexdumped lfilter: a truth function that decides whether a packet must be displayed""" - for i in range(len(self.res)): - p = self._elt2pkt(self.res[i]) + for i, res in enumerate(self.res): + p = self._elt2pkt(res) if lfilter is not None and not lfilter(p): continue print "%s %s %s" % (conf.color_theme.id(i,fmt="%04i"), p.sprintf("%.time%"), - self._elt2sum(self.res[i])) + self._elt2sum(res)) hexdump(p) def padding(self, lfilter=None): """Same as hexraw(), for Padding layer""" - for i in range(len(self.res)): - p = self._elt2pkt(self.res[i]) + for i in enumerate(self.res): + p = self._elt2pkt(res) if p.haslayer(conf.padding_layer): if lfilter is None or lfilter(p): print "%s %s %s" % (conf.color_theme.id(i,fmt="%04i"), p.sprintf("%.time%"), - self._elt2sum(self.res[i])) + self._elt2sum(res)) hexdump(p.getlayer(conf.padding_layer).load) def nzpadding(self, lfilter=None): """Same as padding() but only non null padding""" - for i in range(len(self.res)): - p = self._elt2pkt(self.res[i]) + for i in enumerate(self.res): + p = self._elt2pkt(res) if p.haslayer(conf.padding_layer): pad = p.getlayer(conf.padding_layer).load if pad == pad[0]*len(pad): @@ -232,7 +232,7 @@ lfilter: truth function to apply to each packet to decide whether it will be dis if lfilter is None or lfilter(p): print "%s %s %s" % (conf.color_theme.id(i,fmt="%04i"), p.sprintf("%.time%"), - self._elt2sum(self.res[i])) + self._elt2sum(res)) hexdump(p.getlayer(conf.padding_layer).load) @@ -345,8 +345,8 @@ lfilter: truth function to apply to each packet to decide whether it will be dis import pyx d = pyx.document.document() l = len(self.res) - for i in range(len(self.res)): - elt = self.res[i] + for i in enumerate(self.res): + elt = res c = self._elt2pkt(elt).canvas_dump(**kargs) cbb = c.bbox() c.text(cbb.left(),cbb.top()+1,r"\font\cmssfont=cmss12\cmssfont{Frame %i/%i}" % (i,l),[pyx.text.size.LARGE]) diff --git a/scapy/route.py b/scapy/route.py index 52a95629..170de483 100644 --- a/scapy/route.py +++ b/scapy/route.py @@ -86,8 +86,8 @@ class Route: the_net = the_rawaddr & the_msk - for i in range(len(self.routes)): - net,msk,gw,iface,addr = self.routes[i] + for i, route in enumerate(self.routes): + net, msk, gw, iface, addr = route if iface != iff: continue if gw == '0.0.0.0': diff --git a/scapy/route6.py b/scapy/route6.py index 67b5328d..341a7c3e 100644 --- a/scapy/route6.py +++ b/scapy/route6.py @@ -121,8 +121,8 @@ class Route6: nmask = in6_cidr2mask(the_plen) the_net = inet_ntop(socket.AF_INET6, in6_and(nmask,naddr)) - for i in range(len(self.routes)): - net,plen,gw,iface,addr = self.routes[i] + for i, route in enumerate(self.routes): + net,plen,gw,iface,addr = route if iface != iff: continue if gw == '::': diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index b8d5bb5a..f24591f2 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -141,19 +141,19 @@ def sndrcv(pks, pkt, timeout = None, inter = 0, verbose=None, chainCC=0, retry=0 h = r.hashret() if h in hsent: hlst = hsent[h] - for i in range(len(hlst)): - if r.answers(hlst[i]): - ans.append((hlst[i],r)) + for i, sentpkt in enumerate(hlst): + if r.answers(sentpkt): + ans.append((sentpkt, r)) if verbose > 1: os.write(1, "*") - ok = 1 + ok = 1 if not multi: - del(hlst[i]) - notans -= 1; + del hlst[i] + notans -= 1 else: - if not hasattr(hlst[i], '_answered'): - notans -= 1; - hlst[i]._answered = 1; + if not hasattr(sentpkt, '_answered'): + notans -= 1 + sentpkt._answered = 1 break if notans == 0 and not multi: break diff --git a/scapy/tools/UTscapy.py b/scapy/tools/UTscapy.py index 532d327b..90f15b22 100755 --- a/scapy/tools/UTscapy.py +++ b/scapy/tools/UTscapy.py @@ -574,7 +574,7 @@ def main(argv): NUM.append(int(v)) except ValueError: v1,v2 = map(int, v.split("-")) - for vv in range(v1,v2+1): + for vv in xrange(v1, v2 + 1): NUM.append(vv) elif opt == "-m": MODULES.append(optarg) diff --git a/scapy/utils.py b/scapy/utils.py index 401231f5..675f6647 100644 --- a/scapy/utils.py +++ b/scapy/utils.py @@ -70,7 +70,7 @@ def hexdump(x): i = 0 while i < l: print "%04x " % i, - for j in range(16): + for j in xrange(16): if i+j < l: print "%02X" % ord(x[i+j]), else: @@ -86,7 +86,7 @@ def linehexdump(x, onlyasc=0, onlyhex=0): x = str(x) l = len(x) if not onlyasc: - for i in range(l): + for i in xrange(l): print "%02X" % ord(x[i]), print "", if not onlyhex: @@ -114,13 +114,13 @@ def hexdiff(x,y): INSERT=1 d={} d[-1,-1] = 0,(-1,-1) - for j in range(len(y)): + for j in xrange(len(y)): d[-1,j] = d[-1,j-1][0]+INSERT, (-1,j-1) - for i in range(len(x)): + for i in xrange(len(x)): d[i,-1] = d[i-1,-1][0]+INSERT, (i-1,-1) - for j in range(len(y)): - for i in range(len(x)): + for j in xrange(len(y)): + for i in xrange(len(x)): d[i,j] = min( ( d[i-1,j-1][0]+SUBST*(x[i] != y[j]), (i-1,j-1) ), ( d[i-1,j][0]+INSERT, (i-1,j) ), ( d[i,j-1][0]+INSERT, (i,j-1) ) ) @@ -184,7 +184,7 @@ def hexdiff(x,y): print " ", cl = "" - for j in range(16): + for j in xrange(16): if i+j < l: if line[j]: col = colorize[(linex[j]!=liney[j])*(doy-dox)] @@ -414,9 +414,9 @@ def colgen(*lstcol,**kargs): lstcol *= 2 trans = kargs.get("trans", lambda x,y,z: (x,y,z)) while 1: - for i in range(len(lstcol)): - for j in range(len(lstcol)): - for k in range(len(lstcol)): + for i in xrange(len(lstcol)): + for j in xrange(len(lstcol)): + for k in xrange(len(lstcol)): if i != j or j != k or k != i: yield trans(lstcol[(i+j)%len(lstcol)],lstcol[(j+k)%len(lstcol)],lstcol[(k+i)%len(lstcol)]) @@ -508,7 +508,7 @@ def corrupt_bits(s, p=0.01, n=None): s[i/8] ^= 1 << (i%8) return s.tostring() - + ############################# diff --git a/scapy/utils6.py b/scapy/utils6.py index b1b7ee73..7ba8ca10 100644 --- a/scapy/utils6.py +++ b/scapy/utils6.py @@ -421,8 +421,8 @@ def in6_getRandomizedIfaceId(ifaceid, previous=None): s = "" if previous is None: - d = "".join(map(chr, range(256))) - for i in range(8): + d = "".join(chr(x) for x in xrange(256)) + for _ in xrange(8): s += random.choice(d) previous = s s = inet_pton(socket.AF_INET6, "::"+ifaceid)[8:] + previous @@ -456,7 +456,7 @@ def in6_ctop(addr): j = _rfc1924map.index(c) i = 85*i + j res = [] - for j in range(4): + for j in xrange(4): res.append(struct.pack("!I", i%2**32)) i = i/(2**32) res.reverse() @@ -474,7 +474,7 @@ def in6_ptoc(addr): return None res = 0 m = [2**96, 2**64, 2**32, 1] - for i in range(4): + for i in xrange(4): res += d[i]*m[i] rem = res res = [] @@ -776,7 +776,7 @@ def in6_get_common_plen(a, b): Return common prefix length of IPv6 addresses a and b. """ def matching_bits(byte1, byte2): - for i in range(8): + for i in xrange(8): cur_mask = 0x80 >> i if (byte1 & cur_mask) != (byte2 & cur_mask): return i @@ -784,7 +784,7 @@ def in6_get_common_plen(a, b): tmpA = inet_pton(socket.AF_INET6, a) tmpB = inet_pton(socket.AF_INET6, b) - for i in range(16): + for i in xrange(16): mbits = matching_bits(ord(tmpA[i]), ord(tmpB[i])) if mbits != 8: return 8*i + mbits diff --git a/scapy/volatile.py b/scapy/volatile.py index f8f62a37..8d8d4ad7 100644 --- a/scapy/volatile.py +++ b/scapy/volatile.py @@ -47,12 +47,13 @@ class RandomEnumeration: while True: if self.turns == 0 or (self.i == 0 and self.renewkeys): self.cnt_key = self.rnd.randint(0,2**self.n-1) - self.sbox = [self.rnd.randint(0,self.fsmask) for k in xrange(self.sbox_size)] + self.sbox = [self.rnd.randint(0, self.fsmask) + for _ in xrange(self.sbox_size)] self.turns += 1 while self.i < 2**self.n: ct = self.i^self.cnt_key self.i += 1 - for k in range(self.rounds): # Unbalanced Feistel Network + for _ in xrange(self.rounds): # Unbalanced Feistel Network lsb = ct & self.fsmask ct >>= self.fs lsb ^= self.sbox[ct%self.sbox_size] @@ -215,18 +216,18 @@ class RandString(RandField): self.chars = chars def _fix(self): s = "" - for i in range(self.size): + for _ in xrange(self.size): s += random.choice(self.chars) return s class RandBin(RandString): def __init__(self, size=None): - RandString.__init__(self, size, "".join(map(chr,range(256)))) + RandString.__init__(self, size, "".join(map(chr, xrange(256)))) class RandTermString(RandString): def __init__(self, size, term): - RandString.__init__(self, size, "".join(map(chr,range(1,256)))) + RandString.__init__(self, size, "".join(map(chr, xrange(1,256)))) self.term = term def _fix(self): return RandString._fix(self)+self.term @@ -244,7 +245,7 @@ class RandMAC(RandString): template += ":*:*:*:*:*" template = template.split(":") self.mac = () - for i in range(6): + for i in xrange(6): if template[i] == "*": v = RandByte() elif "-" in template[i]: @@ -292,7 +293,7 @@ class RandIP6(RandString): remain += 1 if nbm or self.variable: remain = random.randint(0,remain) - for j in range(remain): + for j in xrange(remain): ip.append("%04x" % random.randint(0,65535)) elif n == 0: ip.append("0") @@ -311,7 +312,7 @@ class RandOID(RandString): self.ori_fmt = fmt if fmt is not None: fmt = fmt.split(".") - for i in range(len(fmt)): + for i in xrange(len(fmt)): if "-" in fmt[i]: fmt[i] = tuple(map(int, fmt[i].split("-"))) self.fmt = fmt @@ -361,7 +362,7 @@ class RandRegExp(RandField): else: c1 = s[p-1] c2 = s[p+1] - rng = "".join(map(chr, range(ord(c1),ord(c2)+1))) + rng = "".join(map(chr, xrange(ord(c1), ord(c2)+1))) s = s[:p-1]+rng+s[p+1:] res = m+s if invert: @@ -505,7 +506,7 @@ class RandSingNum(RandSingularity): end = -end sign = -1 end_n = int(math.log(end)/math.log(2))+1 - return set([sign*2**i for i in range(end_n)]) + return set([sign*2**i for i in xrange(end_n)]) def __init__(self, mn, mx): sing = set([0, mn, mx, int((mn+mx)/2)]) diff --git a/test/regression.uts b/test/regression.uts index ef1ef8ea..3674e0e7 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -1312,7 +1312,7 @@ in6_addrtomac("FE80::" + in6_mactoifaceid("FF:00:00:00:00:00", ulbit=0)) == 'ff: ########### RFC 3041 related function ############################### = Test in6_getRandomizedIfaceId res=True -for i in range(10): +for _ in xrange(10): s1,s2 = in6_getRandomizedIfaceId('20b:93ff:feeb:2d3') inet_pton(socket.AF_INET6, '::'+s1) tmp2 = inet_pton(socket.AF_INET6, '::'+s2) -- GitLab