From: Shravan Rangarajuvenkata (shrarang) Date: Wed, 15 Jan 2020 19:14:05 +0000 (+0000) Subject: Merge pull request #1932 in SNORT/snort3 from ~SHRARANG/snort3:appid_tp_reload_config... X-Git-Tag: 3.0.0-268~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45ad9442f7bec1cb818533aec754520f426b696e;p=thirdparty%2Fsnort3.git Merge pull request #1932 in SNORT/snort3 from ~SHRARANG/snort3:appid_tp_reload_config to master Squashed commit of the following: commit ce792e96a5d6abf2d1804c90e738487061616700 Author: Shravan Rangaraju Date: Fri Jan 10 11:26:32 2020 -0500 appid: do not reload third party on reload_config --- diff --git a/src/network_inspectors/appid/appid_config.cc b/src/network_inspectors/appid/appid_config.cc index bcb30d193..83a15e680 100644 --- a/src/network_inspectors/appid/appid_config.cc +++ b/src/network_inspectors/appid/appid_config.cc @@ -66,6 +66,10 @@ SnortProtocolId snortId_for_unsynchronized; SnortProtocolId snortId_for_ftp_data; SnortProtocolId snortId_for_http2; +#ifdef ENABLE_APPID_THIRD_PARTY +ThirdPartyAppIdContext* AppIdContext::tp_appid_ctxt = nullptr; +#endif + static void map_app_names_to_snort_ids(SnortConfig* sc) { /* init globals for snortId compares */ diff --git a/src/network_inspectors/appid/appid_config.h b/src/network_inspectors/appid/appid_config.h index 56b2aa233..0e19f651e 100644 --- a/src/network_inspectors/appid/appid_config.h +++ b/src/network_inspectors/appid/appid_config.h @@ -101,17 +101,15 @@ public: AppIdContext(AppIdConfig* config) : config(config) { } - ~AppIdContext() - { -#ifdef ENABLE_APPID_THIRD_PARTY - delete tp_appid_ctxt; -#endif - } + ~AppIdContext() { } #ifdef ENABLE_APPID_THIRD_PARTY ThirdPartyAppIdContext* get_tp_appid_ctxt() const { return tp_appid_ctxt; } + static void delete_tp_appid_ctxt() + { delete tp_appid_ctxt; } + void create_tp_appid_ctxt(); #endif @@ -137,7 +135,7 @@ private: // removed from AppIdContext::pterm static AppInfoManager& app_info_mgr; #ifdef ENABLE_APPID_THIRD_PARTY - ThirdPartyAppIdContext* tp_appid_ctxt = nullptr; + static ThirdPartyAppIdContext* tp_appid_ctxt; #endif }; diff --git a/src/network_inspectors/appid/appid_module.cc b/src/network_inspectors/appid/appid_module.cc index 35fa39fae..b554aa801 100644 --- a/src/network_inspectors/appid/appid_module.cc +++ b/src/network_inspectors/appid/appid_module.cc @@ -184,11 +184,12 @@ static int reload_third_party(lua_State*) else { Swapper::set_reload_in_progress(true); - LogMessage(".. reloading third-party"); + LogMessage(".. reloading third-party\n"); AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true); AppIdContext* ctxt = inspector->get_ctxt(); ctxt->create_tp_appid_ctxt(); Swapper::set_reload_in_progress(false); + LogMessage("== reload third-party complete\n"); } #else LogMessage("== third party is not enabled\n"); diff --git a/src/network_inspectors/appid/test/tp_lib_handler_test.cc b/src/network_inspectors/appid/test/tp_lib_handler_test.cc index c484c2464..2a64ce724 100644 --- a/src/network_inspectors/appid/test/tp_lib_handler_test.cc +++ b/src/network_inspectors/appid/test/tp_lib_handler_test.cc @@ -39,6 +39,10 @@ using namespace std; TPLibHandler* tph = nullptr; +#ifdef ENABLE_APPID_THIRD_PARTY +ThirdPartyAppIdContext* AppIdContext::tp_appid_ctxt = nullptr; +#endif + AppIdConfig::~AppIdConfig() { } TEST_GROUP(tp_lib_handler) diff --git a/src/network_inspectors/appid/tp_lib_handler.cc b/src/network_inspectors/appid/tp_lib_handler.cc index 490cb797e..2bc8e6856 100644 --- a/src/network_inspectors/appid/tp_lib_handler.cc +++ b/src/network_inspectors/appid/tp_lib_handler.cc @@ -157,6 +157,8 @@ void TPLibHandler::pfini() if (ret != 0) ErrorMessage("Could not terminate 3rd party AppID module (%d)!\n", ret); + AppIdContext::delete_tp_appid_ctxt(); + // FIXIT-L: Find the right place to dlclose self->tp_so_handle. dlclose here was causing // segfault