]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3864: perf_monitor: fix data bus subscription
authorRon Dempster (rdempste) <rdempste@cisco.com>
Wed, 31 May 2023 13:11:54 +0000 (13:11 +0000)
committerRon Dempster (rdempste) <rdempste@cisco.com>
Wed, 31 May 2023 13:11:54 +0000 (13:11 +0000)
Merge in SNORT/snort3 from ~RDEMPSTE/snort3:sse_identity to master

Squashed commit of the following:

commit 1e2e532752bce48867954eeb6ad6a24711f5f910
Author: Ron Dempster (rdempste) <rdempste@cisco.com>
Date:   Tue May 30 21:46:37 2023 -0400

    perf_monitor: fix data bus subscription

src/network_inspectors/perf_monitor/perf_monitor.cc

index aa4f877e558b19bc98a0dcbeab019d0cb0d915ce..ce2c0079e5511d097bcab0b459e9bf48caeb1fdd 100644 (file)
@@ -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();
 }