]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
perf_monitor: Actually allow building perf_monitor as a dynamic plugin
authorMichael Altizer <mialtize@cisco.com>
Thu, 6 Dec 2018 19:18:31 +0000 (14:18 -0500)
committerMichael Altizer <mialtize@cisco.com>
Thu, 6 Dec 2018 19:19:01 +0000 (14:19 -0500)
src/framework/module.h
src/main/analyzer_command.cc
src/main/control.cc
src/managers/module_manager.h
src/network_inspectors/perf_monitor/CMakeLists.txt

index a3a7e8418a386676563518cd8ddc384aca2a3ecb..3de467cf6943ed1338a99c2af1512fcdb5ca813c 100644 (file)
 
 struct lua_State;
 
-class ModuleManager;
-
 namespace snort
 {
+class ModuleManager;
 struct ProfileStats;
 struct SnortConfig;
 
index e3c1f578d5b33192096b640b57f1f8932258952f..074c9a444ccb362d59946773dcc07b6d3a49a233 100644 (file)
@@ -71,7 +71,7 @@ void ACGetStats::execute(Analyzer&)
     // FIXIT-P This incurs locking on all threads to retrieve stats.  It
     // could be reimplemented to optimize for large thread counts by
     // retrieving stats in the command and accumulating in the main thread.
-    ModuleManager::accumulate(snort::SnortConfig::get_conf());
+    snort::ModuleManager::accumulate(snort::SnortConfig::get_conf());
 }
 
 ACGetStats::~ACGetStats()
index 3810b719f98fe3d95625aefc70983a66c7dce14a..dbc5a44c725cf8e2de3fcbcc7aec9711d544ea37 100644 (file)
@@ -56,7 +56,7 @@ ControlConn::~ControlConn()
 
 void ControlConn::configure() const
 {
-    ModuleManager::load_commands(sh);
+    snort::ModuleManager::load_commands(sh);
 }
 
 int ControlConn::shell_execute(int& current_fd, Request*& current_request)
index 6c1d7bf4ceb6784916211f4a344afe90322bd8c4..f79ca0cb078361c1e8f9d8969fd38698259bee66 100644 (file)
 #include <set>
 #include <list>
 
+#include "main/snort_types.h"
+
 //-------------------------------------------------------------------------
 
+class Shell;
+
 namespace snort
 {
 struct BaseApi;
 class Module;
 struct SnortConfig;
-}
-
-class Shell;
 
 class ModuleManager
 {
@@ -44,11 +45,11 @@ public:
     static void init();
     static void term();
 
-    static void add_module(snort::Module*, const snort::BaseApi* = nullptr);
-    static snort::Module* get_module(const char*);
-    static snort::Module* get_default_module(const char*, snort::SnortConfig*);
+    static void add_module(Module*, const BaseApi* = nullptr);
+    SO_PUBLIC static Module* get_module(const char*);
+    static Module* get_default_module(const char*, SnortConfig*);
     static const char* get_current_module();
-    static std::list<snort::Module*> get_all_modules();
+    SO_PUBLIC static std::list<Module*> get_all_modules();
 
     static void list_modules(const char* = nullptr);
     static void dump_modules();
@@ -69,20 +70,21 @@ public:
     static void dump_defaults(const char* = nullptr);
 
     static void load_commands(Shell*);
-    static void load_rules(snort::SnortConfig*);
-    static void set_config(snort::SnortConfig*);
-    static void reload_module(const char*, snort::SnortConfig*);
+    static void load_rules(SnortConfig*);
+    static void set_config(SnortConfig*);
+    static void reload_module(const char*, SnortConfig*);
 
     static void reset_errors();
     static unsigned get_errors();
 
-    static void dump_stats(snort::SnortConfig*, const char* skip = nullptr, bool dynamic = false);
+    static void dump_stats(SnortConfig*, const char* skip = nullptr, bool dynamic = false);
  
-    static void accumulate(snort::SnortConfig*);
-    static void reset_stats(snort::SnortConfig*);
+    static void accumulate(SnortConfig*);
+    static void reset_stats(SnortConfig*);
 
     static std::set<uint32_t> gids;
 };
+}
 
 extern "C"
 {
index edfc1de089df0acb5254e8fee174795c1b974577..c8131241373ef9018cd7192b4d2488bcf889e5b8 100644 (file)
@@ -2,7 +2,7 @@ if ( FLATBUFFERS_FOUND )
     set( FLATBUFFERS_SOURCE fbs_formatter.h fbs_formatter.cc )
 endif()
 
-add_library ( perf_monitor OBJECT
+set ( FILE_LIST
     base_tracker.cc
     base_tracker.h
     csv_formatter.cc
@@ -27,6 +27,17 @@ add_library ( perf_monitor OBJECT
     text_formatter.h
 )
 
+if (STATIC_INSPECTORS)
+    add_library(perf_monitor OBJECT
+        ${FILE_LIST}
+    )
+
+else (STATIC_INSPECTORS)
+    add_dynamic_module(perf_monitor inspectors ${FILE_LIST})
+
+endif (STATIC_INSPECTORS)
+
 if ( FLATBUFFERS_FOUND )
     target_include_directories( perf_monitor PRIVATE ${FLATBUFFERS_INCLUDE_DIR} )
 endif()
+