mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 23:28:20 +00:00
Bring back default packet analysis.
Default analyzers can be configured per packet analyzer by omitting the identifier in the ConfigEntry.
This commit is contained in:
parent
d4ff5a236c
commit
462b1fe3a2
9 changed files with 81 additions and 21 deletions
|
@ -47,14 +47,24 @@ bool Analyzer::RegisterAnalyzerMapping(uint32_t identifier, AnalyzerPtr analyzer
|
|||
return dispatcher.Register(identifier, std::move(analyzer));
|
||||
}
|
||||
|
||||
void Analyzer::RegisterDefaultAnalyzer(AnalyzerPtr default_analyzer)
|
||||
{
|
||||
this->default_analyzer = std::move(default_analyzer);
|
||||
}
|
||||
|
||||
AnalyzerPtr Analyzer::Lookup(uint32_t identifier) const
|
||||
{
|
||||
return dispatcher.Lookup(identifier);
|
||||
}
|
||||
|
||||
AnalyzerResult Analyzer::AnalyzeInnerPacket(Packet* packet,
|
||||
const uint8_t*& data, uint32_t identifier) const
|
||||
{
|
||||
auto inner_analyzer = dispatcher.Lookup(identifier);
|
||||
auto inner_analyzer = Lookup(identifier);
|
||||
inner_analyzer = inner_analyzer ? inner_analyzer : default_analyzer;
|
||||
|
||||
if ( inner_analyzer == nullptr )
|
||||
{
|
||||
//TODO: Handle default analysis here
|
||||
DBG_LOG(DBG_PACKET_ANALYSIS, "Analysis in %s failed, could not find analyzer for identifier %#x.",
|
||||
GetAnalyzerName(), identifier);
|
||||
packet->Weird("no_suitable_analyzer_found");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue