Fixed a bug in IcmpProtocol::frameFieldCount() which would return incorrect values sometimes

This commit is contained in:
Srivats P. 2010-06-07 19:20:35 +05:30
parent 11acbf201d
commit 710eb7f836
2 changed files with 12 additions and 6 deletions

View File

@ -135,12 +135,15 @@ int IcmpProtocol::fieldCount() const
int IcmpProtocol::frameFieldCount() const
{
int count = AbstractProtocol::frameFieldCount();
int count;
if (idSeqSet.contains(fieldData(icmp_type, FieldValue).toUInt()))
count = icmp_idSeqFrameFieldCount;
else
count = icmp_commonFrameFieldCount;
if (!idSeqSet.contains(fieldData(icmp_type, FieldValue).toUInt()))
count -=2;
return count;
}
AbstractProtocol::FieldFlags IcmpProtocol::fieldFlags(int index) const

View File

@ -55,11 +55,14 @@ private:
icmp_type = 0,
icmp_code,
icmp_checksum,
icmp_identifier,
icmp_commonFrameFieldCount,
icmp_identifier = icmp_commonFrameFieldCount,
icmp_sequence,
icmp_idSeqFrameFieldCount,
// Meta Fields
icmp_is_override_checksum,
icmp_is_override_checksum = icmp_idSeqFrameFieldCount,
icmp_fieldCount
};