From bc9a1059515c567923b5b16d8fc074631e89b0a5 Mon Sep 17 00:00:00 2001 From: Phil <phil@secdev.org> Date: Sun, 1 Feb 2009 20:05:28 +0100 Subject: [PATCH] Added management of ICMP address mask request/reply --- scapy/layers/inet.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index 1eb02370..ac61d4f5 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -379,15 +379,17 @@ class ICMP(Packet): fields_desc = [ ByteEnumField("type",8, icmptypes), ByteField("code",0), XShortField("chksum", None), - ConditionalField(XShortField("id",0), lambda pkt:pkt.type in [0,8,13,14,15,16]), - ConditionalField(XShortField("seq",0), lambda pkt:pkt.type in [0,8,13,14,15,16]), + ConditionalField(XShortField("id",0), lambda pkt:pkt.type in [0,8,13,14,15,16,17,18]), + ConditionalField(XShortField("seq",0), lambda pkt:pkt.type in [0,8,13,14,15,16,17,18]), ConditionalField(ICMPTimeStampField("ts_ori", None), lambda pkt:pkt.type in [13,14]), ConditionalField(ICMPTimeStampField("ts_rx", None), lambda pkt:pkt.type in [13,14]), ConditionalField(ICMPTimeStampField("ts_tx", None), lambda pkt:pkt.type in [13,14]), ConditionalField(IPField("gw","0.0.0.0"), lambda pkt:pkt.type==5), ConditionalField(ByteField("ptr",0), lambda pkt:pkt.type==12), ConditionalField(X3BytesField("reserved",0), lambda pkt:pkt.type==12), - ConditionalField(IntField("unused",0), lambda pkt:pkt.type not in [0,5,8,12,13,14,15,16]), + ConditionalField(IPField("addr_mask","0.0.0.0"), lambda pkt:pkt.type in [17,18]), + ConditionalField(IntField("unused",0), lambda pkt:pkt.type not in [0,5,8,12,13,14,15,16,17,18]), + ] def post_build(self, p, pay): p += pay -- GitLab