diff --git a/scapy/layers/dhcp.py b/scapy/layers/dhcp.py index 612d72f75cff832285058f295756e39b78258e7b..8572fe9c1be7691ca339a3b2d8bd5104335b35a4 100644 --- a/scapy/layers/dhcp.py +++ b/scapy/layers/dhcp.py @@ -7,6 +7,7 @@ DHCP (Dynamic Host Configuration Protocol) d BOOTP """ +from collections import Iterable import struct from scapy.packet import * @@ -301,8 +302,6 @@ class BOOTP_am(AnsweringMachine): send_function = staticmethod(sendp) def parse_options(self, pool=Net("192.168.1.128/25"), network="192.168.1.0/24",gw="192.168.1.1", domain="localnet", renewal_time=60, lease_time=1800): - if type(pool) is str: - poom = Net(pool) self.domain = domain netw,msk = (network.split("/")+["32"])[:2] msk = itom(int(msk)) @@ -310,7 +309,9 @@ class BOOTP_am(AnsweringMachine): self.network = ltoa(atol(netw)&msk) self.broadcast = ltoa( atol(self.network) | (0xffffffff&~msk) ) self.gw = gw - if isinstance(pool,Gen): + if isinstance(pool, basestring): + pool = Net(pool) + if isinstance(pool, Iterable): pool = [k for k in pool if k not in [gw, self.network, self.broadcast]] pool.reverse() if len(pool) == 1: