From: Michael Altizer Date: Thu, 6 Dec 2018 19:18:31 +0000 (-0500) Subject: perf_monitor: Actually allow building perf_monitor as a dynamic plugin X-Git-Tag: 3.0.0-250~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8610aa0f9dae58cbf3ede5a57a59c221e9c54b1b;p=thirdparty%2Fsnort3.git perf_monitor: Actually allow building perf_monitor as a dynamic plugin --- diff --git a/src/framework/module.h b/src/framework/module.h index a3a7e8418..3de467cf6 100644 --- a/src/framework/module.h +++ b/src/framework/module.h @@ -51,10 +51,9 @@ struct lua_State; -class ModuleManager; - namespace snort { +class ModuleManager; struct ProfileStats; struct SnortConfig; diff --git a/src/main/analyzer_command.cc b/src/main/analyzer_command.cc index e3c1f578d..074c9a444 100644 --- a/src/main/analyzer_command.cc +++ b/src/main/analyzer_command.cc @@ -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() diff --git a/src/main/control.cc b/src/main/control.cc index 3810b719f..dbc5a44c7 100644 --- a/src/main/control.cc +++ b/src/main/control.cc @@ -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) diff --git a/src/managers/module_manager.h b/src/managers/module_manager.h index 6c1d7bf4c..f79ca0cb0 100644 --- a/src/managers/module_manager.h +++ b/src/managers/module_manager.h @@ -27,16 +27,17 @@ #include #include +#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 get_all_modules(); + SO_PUBLIC static std::list 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 gids; }; +} extern "C" { diff --git a/src/network_inspectors/perf_monitor/CMakeLists.txt b/src/network_inspectors/perf_monitor/CMakeLists.txt index edfc1de08..c81312413 100644 --- a/src/network_inspectors/perf_monitor/CMakeLists.txt +++ b/src/network_inspectors/perf_monitor/CMakeLists.txt @@ -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() +