From: Ron Dempster (rdempste) Date: Wed, 31 May 2023 13:11:54 +0000 (+0000) Subject: Pull request #3864: perf_monitor: fix data bus subscription X-Git-Tag: 3.1.63.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9563b915c9272e663094bdcb279c36d1dd9eec7e;p=thirdparty%2Fsnort3.git Pull request #3864: perf_monitor: fix data bus subscription Merge in SNORT/snort3 from ~RDEMPSTE/snort3:sse_identity to master Squashed commit of the following: commit 1e2e532752bce48867954eeb6ad6a24711f5f910 Author: Ron Dempster (rdempste) Date: Tue May 30 21:46:37 2023 -0400 perf_monitor: fix data bus subscription --- diff --git a/src/network_inspectors/perf_monitor/perf_monitor.cc b/src/network_inspectors/perf_monitor/perf_monitor.cc index aa4f877e5..ce2c0079e 100644 --- a/src/network_inspectors/perf_monitor/perf_monitor.cc +++ b/src/network_inspectors/perf_monitor/perf_monitor.cc @@ -61,8 +61,8 @@ static THREAD_LOCAL PerfConstraints* t_constraints; class PerfIdleHandler : public DataHandler { public: - PerfIdleHandler(PerfMonitor& p) : DataHandler(PERF_NAME), perf_monitor(p) - { DataBus::subscribe_network(intrinsic_pub_key, IntrinsicEventIds::THREAD_IDLE, this); } + PerfIdleHandler(PerfMonitor& p, SnortConfig& sc) : DataHandler(PERF_NAME), perf_monitor(p) + { DataBus::subscribe_global(intrinsic_pub_key, IntrinsicEventIds::THREAD_IDLE, this, sc); } void handle(DataEvent&, Flow*) override { perf_monitor.eval(nullptr); } @@ -74,8 +74,8 @@ private: class PerfRotateHandler : public DataHandler { public: - PerfRotateHandler(PerfMonitor& p) : DataHandler(PERF_NAME), perf_monitor(p) - { DataBus::subscribe_network(intrinsic_pub_key, IntrinsicEventIds::THREAD_ROTATE, this); } + PerfRotateHandler(PerfMonitor& p, SnortConfig& sc) : DataHandler(PERF_NAME), perf_monitor(p) + { DataBus::subscribe_global(intrinsic_pub_key, IntrinsicEventIds::THREAD_ROTATE, this, sc); } void handle(DataEvent&, Flow*) override { perf_monitor.rotate(); } @@ -87,8 +87,8 @@ private: class FlowIPDataHandler : public DataHandler { public: - FlowIPDataHandler(PerfMonitor& p) : DataHandler(PERF_NAME), perf_monitor(p) - { DataBus::subscribe_network(intrinsic_pub_key, IntrinsicEventIds::FLOW_STATE_CHANGE, this); } + FlowIPDataHandler(PerfMonitor& p, SnortConfig& sc) : DataHandler(PERF_NAME), perf_monitor(p) + { DataBus::subscribe_global(intrinsic_pub_key, IntrinsicEventIds::FLOW_STATE_CHANGE, this, sc); } void handle(DataEvent&, Flow* flow) override { @@ -191,11 +191,11 @@ void PerfMonitor::disable_tracker(size_t i) // type and version fields immediately after timestamp like seconds, usec, // type, version#, data1, data2, ... -bool PerfMonitor::configure(SnortConfig*) +bool PerfMonitor::configure(SnortConfig* sc) { - new PerfIdleHandler(*this); - new PerfRotateHandler(*this); - new FlowIPDataHandler(*this); + new PerfIdleHandler(*this, *sc); + new PerfRotateHandler(*this, *sc); + new FlowIPDataHandler(*this, *sc); return config->resolve(); }