Changeset 895:879144443345

Show
Ignore:
Timestamp:
08/31/08 00:33:01 (4 months ago)
Author:
Phil <phil@secdev.org>
Message:

Move RandDHCPOptions to layers/dhcp.py

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • scapy/layers/dhcp.py

    r871 r895  
    1111from scapy.layers.inet import UDP 
    1212from scapy.base_classes import Net 
     13from scapy.volatile import RandField 
    1314 
    1415dhcpmagic="c\x82Sc" 
     
    146147 
    147148 
     149class RandDHCPOptions(RandField): 
     150    def __init__(self, size=None, rndstr=None): 
     151        if size is None: 
     152            size = RandNumExpo(0.05) 
     153        self.size = size 
     154        if rndstr is None: 
     155            rndstr = RandBin(RandNum(0,255)) 
     156        self.rndstr=rndstr 
     157        self._opts = DHCPOptions.values() 
     158        self._opts.remove("pad") 
     159        self._opts.remove("end") 
     160    def _fix(self): 
     161        op = [] 
     162        for k in range(self.size): 
     163            o = random.choice(self._opts) 
     164            if type(o) is str: 
     165                op.append((o,self.rndstr*1)) 
     166            else: 
     167                op.append((o.name, o.randval()._fix())) 
     168        return op 
     169 
    148170 
    149171class DHCPOptionsField(StrField): 
  • scapy/volatile.py

    r862 r895  
    206206            return ".".join(oid) 
    207207             
    208  
    209  
    210 class RandDHCPOptions(RandField): 
    211     def __init__(self, size=None, rndstr=None): 
    212         if size is None: 
    213             size = RandNumExpo(0.05) 
    214         self.size = size 
    215         if rndstr is None: 
    216             rndstr = RandBin(RandNum(0,255)) 
    217         self.rndstr=rndstr 
    218         self._opts = DHCPOptions.values() 
    219         self._opts.remove("pad") 
    220         self._opts.remove("end") 
    221     def _fix(self): 
    222         op = [] 
    223         for k in range(self.size): 
    224             o = random.choice(self._opts) 
    225             if type(o) is str: 
    226                 op.append((o,self.rndstr*1)) 
    227             else: 
    228                 op.append((o.name, o.randval()._fix())) 
    229         return op 
    230208             
    231209