From 6f6e5b4df015a8595b0ca1a8566f91b0c72bdb08 Mon Sep 17 00:00:00 2001 From: Jan Grashoefer Date: Tue, 25 Aug 2020 11:14:36 +0200 Subject: [PATCH] Suggested code improvements for packet analysis. --- src/packet_analysis/Analyzer.cc | 3 ++- src/packet_analysis/Manager.cc | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/packet_analysis/Analyzer.cc b/src/packet_analysis/Analyzer.cc index b318c514a3..82c0add46c 100644 --- a/src/packet_analysis/Analyzer.cc +++ b/src/packet_analysis/Analyzer.cc @@ -61,7 +61,8 @@ AnalyzerResult Analyzer::AnalyzeInnerPacket(Packet* packet, const uint8_t*& data, uint32_t identifier) const { auto inner_analyzer = Lookup(identifier); - inner_analyzer = inner_analyzer ? inner_analyzer : default_analyzer; + if ( ! inner_analyzer ) + inner_analyzer = default_analyzer; if ( inner_analyzer == nullptr ) { diff --git a/src/packet_analysis/Manager.cc b/src/packet_analysis/Manager.cc index 663c85fd6f..7e68a5bfef 100644 --- a/src/packet_analysis/Manager.cc +++ b/src/packet_analysis/Manager.cc @@ -42,34 +42,35 @@ void Manager::InitPostScript() auto analyzer_tag = rv->GetField("analyzer")->AsEnumVal(); auto analyzer_name = Lookup(analyzer_tag)->Name(); - if ( analyzers.find(analyzer_name) == analyzers.end() ) + auto analyzer_it = analyzers.find(analyzer_name); + if ( analyzer_it == analyzers.end() ) { reporter->InternalWarning("Mapped analyzer %s not found.", analyzer_name.c_str()); continue; } + auto& analyzer = analyzer_it->second; if ( parent_name == "ROOT" ) { if ( identifier_val ) - root_dispatcher.Register(identifier_val->AsCount(), - analyzers[analyzer_name]); + root_dispatcher.Register(identifier_val->AsCount(), analyzer); else - default_analyzer = analyzers[analyzer_name]; + default_analyzer = analyzer; continue; } - if ( analyzers.find(parent_name) == analyzers.end() ) + auto parent_analyzer_it = analyzers.find(parent_name); + if ( parent_analyzer_it == analyzers.end() ) { reporter->InternalWarning("Parent analyzer %s not found.", parent_name.c_str()); continue; } + auto& parent_analyzer = parent_analyzer_it->second; - auto& parent_analyzer = analyzers[parent_name]; if ( identifier_val ) - parent_analyzer->RegisterAnalyzerMapping(identifier_val->AsCount(), - analyzers[analyzer_name]); + parent_analyzer->RegisterAnalyzerMapping(identifier_val->AsCount(), analyzer); else - parent_analyzer->RegisterDefaultAnalyzer(analyzers[analyzer_name]); + parent_analyzer->RegisterDefaultAnalyzer(analyzer); } // Initialize all analyzers