Ticket #119: scapy-FloatField.patch
| File scapy-FloatField.patch, 1.0 kB (added by wam@cisco.com, 4 months ago) |
|---|
-
scapy.py
old new 4809 4815 return val 4810 4816 4811 4817 class FloatField(BitField): 4818 def __init__(self, name, default, size, decimal_bits=16): 4819 BitField.__init__(self, name, default, size) 4820 self.decimal_bits = decimal_bits 4821 4822 def addfield(self, pkt, s, val): 4823 fract = int((val - int(val)) * 2**self.decimal_bits) 4824 new = (int(val) << self.decimal_bits) | fract 4825 return BitField.addfield(self, pkt, s, new) 4826 4812 4827 def getfield(self, pkt, s): 4813 4828 s,b = BitField.getfield(self, pkt, s) 4814 4815 # fraction point between bits 15 and 16. 4816 sec = b >> 16 4817 frac = b & (1L << (32+1)) - 1 4818 frac /= 65536.0 4819 b = sec+frac 4829 int_part = b >> self.decimal_bits 4830 frac_part = b & (1L << self.decimal_bits) - 1 4831 frac_part /= 2.0**self.decimal_bits 4832 b = int_part+frac_part 4820 4833 return s,b 4821 4834 4822 4835 class Dot11SCField(LEShortField):