Import IP options into ip4.options instead of a new HexDump protocol
ip4.options was not supported earlier, so we used to import into a new hexdump protocol. Now that IPv4 options field is supported, use that instead
This commit is contained in:
parent
6cac41ab40
commit
48721cece4
@ -63,8 +63,11 @@ void PdmlIp4Protocol::unknownFieldHandler(QString name, int /*pos*/,
|
|||||||
else if ((name == "ip.options") ||
|
else if ((name == "ip.options") ||
|
||||||
attributes.value("show").toString().startsWith("Options"))
|
attributes.value("show").toString().startsWith("Options"))
|
||||||
{
|
{
|
||||||
options_ = QByteArray::fromHex(
|
OstProto::Ip4 *ip4 = pbProto->MutableExtension(OstProto::ip4);
|
||||||
|
|
||||||
|
QByteArray options = QByteArray::fromHex(
|
||||||
attributes.value("value").toString().toUtf8());
|
attributes.value("value").toString().toUtf8());
|
||||||
|
ip4->set_options(options.constData(), options.size());
|
||||||
}
|
}
|
||||||
else if (name == "ip.flags")
|
else if (name == "ip.flags")
|
||||||
{
|
{
|
||||||
@ -75,7 +78,7 @@ void PdmlIp4Protocol::unknownFieldHandler(QString name, int /*pos*/,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PdmlIp4Protocol::postProtocolHandler(OstProto::Protocol *pbProto,
|
void PdmlIp4Protocol::postProtocolHandler(OstProto::Protocol *pbProto,
|
||||||
OstProto::Stream *stream)
|
OstProto::Stream* /*stream*/)
|
||||||
{
|
{
|
||||||
OstProto::Ip4 *ip4 = pbProto->MutableExtension(OstProto::ip4);
|
OstProto::Ip4 *ip4 = pbProto->MutableExtension(OstProto::ip4);
|
||||||
|
|
||||||
@ -84,20 +87,5 @@ void PdmlIp4Protocol::postProtocolHandler(OstProto::Protocol *pbProto,
|
|||||||
ip4->set_is_override_totlen(true);
|
ip4->set_is_override_totlen(true);
|
||||||
ip4->set_is_override_proto(true);
|
ip4->set_is_override_proto(true);
|
||||||
ip4->set_is_override_cksum(true);
|
ip4->set_is_override_cksum(true);
|
||||||
|
|
||||||
if (options_.size())
|
|
||||||
{
|
|
||||||
OstProto::Protocol *proto = stream->add_protocol();
|
|
||||||
|
|
||||||
proto->mutable_protocol_id()->set_id(
|
|
||||||
OstProto::Protocol::kHexDumpFieldNumber);
|
|
||||||
|
|
||||||
OstProto::HexDump *hexDump = proto->MutableExtension(OstProto::hexDump);
|
|
||||||
|
|
||||||
hexDump->mutable_content()->append(options_.constData(),
|
|
||||||
options_.size());
|
|
||||||
hexDump->set_pad_until_end(false);
|
|
||||||
options_.resize(0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,6 @@ public:
|
|||||||
OstProto::Stream *stream);
|
OstProto::Stream *stream);
|
||||||
protected:
|
protected:
|
||||||
PdmlIp4Protocol();
|
PdmlIp4Protocol();
|
||||||
private:
|
|
||||||
QByteArray options_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user