From: Russ Combs (rucombs) Date: Thu, 3 Nov 2016 22:34:05 +0000 (-0400) Subject: Merge pull request #689 in SNORT/snort3 from perf-mon-breaks-counts to master X-Git-Tag: 3.0.0-233~203 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98981e0ffba5061bf1d3cb777ea0efa96c674235;p=thirdparty%2Fsnort3.git Merge pull request #689 in SNORT/snort3 from perf-mon-breaks-counts to master Squashed commit of the following: commit 5b402fa8461b9ec22e43b618559797c2aa8a794d Author: Victor Roemer Date: Tue Oct 25 14:29:35 2016 -0400 Fix shutdown stats, break perf_mon interval stats --- diff --git a/src/framework/module.h b/src/framework/module.h index 17e78aa08..2946ec231 100644 --- a/src/framework/module.h +++ b/src/framework/module.h @@ -163,6 +163,9 @@ private: friend class ModuleManager; void init(const char*, const char* = nullptr); + std::vector counts; + int num_counts; + const char* name; const char* help; @@ -170,8 +173,6 @@ private: const Parameter* default_params = nullptr; bool list; - std::vector counts; - int num_counts; Trace* trace; }; diff --git a/src/network_inspectors/perf_monitor/base_tracker.cc b/src/network_inspectors/perf_monitor/base_tracker.cc index 195a0b3ef..502f2cf7f 100644 --- a/src/network_inspectors/perf_monitor/base_tracker.cc +++ b/src/network_inspectors/perf_monitor/base_tracker.cc @@ -32,18 +32,18 @@ using namespace std; #define BASE_FILE (PERF_NAME ".csv") -BaseTracker::BaseTracker(PerfConfig* perf) : PerfTracker(perf, - perf->output == PERF_FILE ? BASE_FILE : nullptr) +BaseTracker::BaseTracker(PerfConfig* perf) + : PerfTracker(perf, perf->output == PERF_FILE ? BASE_FILE : nullptr) { for (unsigned i = 0; i < config->modules.size(); i++) { Module *m = config->modules.at(i); - vector peg_map = config->mod_peg_idxs.at(i); + IndexVec peg_map = config->mod_peg_idxs.at(i); formatter->register_section(m->get_name()); - for (auto& idx : peg_map) - formatter->register_field(m->get_pegs()[idx].name, - &(m->get_counts()[idx])); + + for (auto const& i : peg_map) + formatter->register_field(m->get_pegs()[i].name, &(m->get_counts()[i])); } formatter->finalize_fields(); } @@ -52,9 +52,9 @@ void BaseTracker::process(bool summary) { write(); - for (unsigned i = 0; i < config->modules.size(); i++) + for ( auto const& m : config->modules ) if (!summary) - config->modules.at(i)->sum_stats(); + m->sum_stats(); } #ifdef UNIT_TEST diff --git a/src/stream/file/file_module.cc b/src/stream/file/file_module.cc index 9de2ba204..9d0a8ddfe 100644 --- a/src/stream/file/file_module.cc +++ b/src/stream/file/file_module.cc @@ -43,14 +43,6 @@ StreamFileModule::StreamFileModule() : StreamFileModule::~StreamFileModule() { } -#if 0 -const PegInfo* StreamFileModule::get_pegs() const -{ return file_pegs; } - -PegCount* StreamFileModule::get_counts() const -{ return (PegCount*)&file_stats; } -#endif - bool StreamFileModule::begin(const char*, int, SnortConfig*) { upload = false; diff --git a/src/stream/file/file_module.h b/src/stream/file/file_module.h index 81e9f4f5d..0301128bc 100644 --- a/src/stream/file/file_module.h +++ b/src/stream/file/file_module.h @@ -43,11 +43,6 @@ public: StreamFileModule(); ~StreamFileModule(); -#if 0 - const PegInfo* get_pegs() const override; - PegCount* get_counts() const override; -#endif - bool begin(const char*, int, SnortConfig*) override; bool set(const char*, Value&, SnortConfig*) override; diff --git a/src/stream/icmp/icmp_module.cc b/src/stream/icmp/icmp_module.cc index a470b23aa..cd79707a9 100644 --- a/src/stream/icmp/icmp_module.cc +++ b/src/stream/icmp/icmp_module.cc @@ -91,14 +91,3 @@ const PegInfo* StreamIcmpModule::get_pegs() const PegCount* StreamIcmpModule::get_counts() const { return (PegCount*)&icmpStats; } - -void StreamIcmpModule::sum_stats() -{ - PegCount sessions = icmpStats.sessions; - - Module::sum_stats(); - - icmpStats.sessions = sessions; - icmpStats.max = sessions; -} - diff --git a/src/stream/icmp/icmp_module.h b/src/stream/icmp/icmp_module.h index eb664c0e6..fae11a0cf 100644 --- a/src/stream/icmp/icmp_module.h +++ b/src/stream/icmp/icmp_module.h @@ -60,8 +60,6 @@ public: StreamIcmpConfig* get_data(); - void sum_stats() override; - private: StreamIcmpConfig* config; }; diff --git a/src/stream/ip/ip_module.cc b/src/stream/ip/ip_module.cc index 30d04b08a..28eca68bd 100644 --- a/src/stream/ip/ip_module.cc +++ b/src/stream/ip/ip_module.cc @@ -217,15 +217,3 @@ const PegInfo* StreamIpModule::get_pegs() const PegCount* StreamIpModule::get_counts() const { return (PegCount*)&ip_stats; } -void StreamIpModule::sum_stats() -{ - PegCount sessions = ip_stats.sessions; - PegCount current = ip_stats.current; - - Module::sum_stats(); - - ip_stats.sessions = sessions; - ip_stats.max = sessions; - ip_stats.current = current; -} - diff --git a/src/stream/ip/ip_module.h b/src/stream/ip/ip_module.h index 6d440effa..f71daa904 100644 --- a/src/stream/ip/ip_module.h +++ b/src/stream/ip/ip_module.h @@ -116,8 +116,6 @@ public: unsigned get_gid() const override { return GID_DEFRAG; } - void sum_stats() override; - private: StreamIpConfig* config; }; diff --git a/src/stream/tcp/tcp_module.cc b/src/stream/tcp/tcp_module.cc index 670f86e68..97524a3b4 100644 --- a/src/stream/tcp/tcp_module.cc +++ b/src/stream/tcp/tcp_module.cc @@ -365,20 +365,3 @@ const PegInfo* StreamTcpModule::get_pegs() const PegCount* StreamTcpModule::get_counts() const { return (PegCount*)&tcpStats; } -void StreamTcpModule::sum_stats() -{ - // FIXIT-L is there a way these session pegs can be derived from other pegs? - PegCount init = tcpStats.sessions_initializing; - PegCount est = tcpStats.sessions_established; - PegCount closing = tcpStats.sessions_closing; - PegCount sessions = tcpStats.sessions; - - Module::sum_stats(); - - tcpStats.sessions_initializing = init; - tcpStats.sessions_established = est; - tcpStats.sessions_closing = closing; - tcpStats.sessions = sessions; - tcpStats.max = sessions; -} - diff --git a/src/stream/tcp/tcp_module.h b/src/stream/tcp/tcp_module.h index 1dd5b1862..a55dde178 100644 --- a/src/stream/tcp/tcp_module.h +++ b/src/stream/tcp/tcp_module.h @@ -135,7 +135,6 @@ public: ProfileStats* get_profile(unsigned, const char*&, const char*&) const override; const PegInfo* get_pegs() const override; PegCount* get_counts() const override; - void sum_stats() override; private: TcpStreamConfig* config; diff --git a/src/stream/udp/udp_module.cc b/src/stream/udp/udp_module.cc index 939fb0281..0d0247c6b 100644 --- a/src/stream/udp/udp_module.cc +++ b/src/stream/udp/udp_module.cc @@ -97,14 +97,3 @@ const PegInfo* StreamUdpModule::get_pegs() const PegCount* StreamUdpModule::get_counts() const { return (PegCount*)&udpStats; } - -void StreamUdpModule::sum_stats() -{ - PegCount sessions = udpStats.sessions; - - Module::sum_stats(); - - udpStats.sessions = sessions; - udpStats.max = sessions; -} - diff --git a/src/stream/udp/udp_module.h b/src/stream/udp/udp_module.h index 9d52f303d..d3dce14fb 100644 --- a/src/stream/udp/udp_module.h +++ b/src/stream/udp/udp_module.h @@ -62,8 +62,6 @@ public: PegCount* get_counts() const override; StreamUdpConfig* get_data(); - void sum_stats() override; - private: StreamUdpConfig* config; }; diff --git a/src/utils/stats.h b/src/utils/stats.h index 4a98a8444..50d4c3db6 100644 --- a/src/utils/stats.h +++ b/src/utils/stats.h @@ -35,7 +35,7 @@ #include "main/snort_types.h" #include "framework/counts.h" -typedef std::vector IndexVec; +using IndexVec = std::vector; // FIXIT-L split this out into appropriate modules struct PacketCount