From: Shravan Rangarajuvenkata (shrarang) Date: Tue, 8 Sep 2020 17:11:16 +0000 (+0000) Subject: Merge pull request #2452 in SNORT/snort3 from ~SATHIRKA/snort3:dump_user_appid_conf_r... X-Git-Tag: 3.0.2-6~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98cce3283cf8e96711fca216dc1bd060d7070adf;p=thirdparty%2Fsnort3.git Merge pull request #2452 in SNORT/snort3 from ~SATHIRKA/snort3:dump_user_appid_conf_reload to master Squashed commit of the following: commit 53760dc07886359c1b1cb39b583c4a9bc66ddf26 Author: Sreeja Athirkandathil Narayanan Date: Wed Sep 2 16:26:58 2020 -0400 appid: Dump user appid configuration on reload detectors --- diff --git a/src/network_inspectors/appid/app_info_table.cc b/src/network_inspectors/appid/app_info_table.cc index 58b3ef081..55c4b484c 100644 --- a/src/network_inspectors/appid/app_info_table.cc +++ b/src/network_inspectors/appid/app_info_table.cc @@ -26,6 +26,7 @@ #include "app_info_table.h" #include +#include #include #include @@ -616,6 +617,23 @@ void AppInfoManager::load_odp_config(OdpContext& odp_ctxt, const char* path) fclose(config_file); } +void AppInfoManager::dump_appid_configurations(std::string file_path) +{ + std::ifstream conf_file(file_path); + if (!conf_file.is_open()) + { + ParseError("appid: could not open %s", file_path.c_str()); + return; + } + + LogMessage("AppId: Configuration file %s\n", file_path.c_str()); + std::string line; + while (getline(conf_file, line)) + LogMessage("%s\n", line.c_str()); + + conf_file.close(); +} + SnortProtocolId AppInfoManager::add_appid_protocol_reference(const char* protocol, SnortConfig* sc) { diff --git a/src/network_inspectors/appid/app_info_table.h b/src/network_inspectors/appid/app_info_table.h index f3c0c5391..0d30e6cfb 100644 --- a/src/network_inspectors/appid/app_info_table.h +++ b/src/network_inspectors/appid/app_info_table.h @@ -138,6 +138,7 @@ public: void cleanup_appid_info_table(); void dump_app_info_table(); SnortProtocolId add_appid_protocol_reference(const char* protocol, snort::SnortConfig*); + void dump_appid_configurations(std::string); private: void load_odp_config(OdpContext&, const char* path); diff --git a/src/network_inspectors/appid/appid_module.cc b/src/network_inspectors/appid/appid_module.cc index 9c25c92a0..ee4e24678 100644 --- a/src/network_inspectors/appid/appid_module.cc +++ b/src/network_inspectors/appid/appid_module.cc @@ -240,6 +240,14 @@ ACOdpContextSwap::~ACOdpContextSwap() { odp_ctxt.get_app_info_mgr().cleanup_appid_info_table(); delete &odp_ctxt; + AppIdContext& ctxt = inspector.get_ctxt(); + if (ctxt.config.app_detector_dir) + { + std::string file_path = std::string(ctxt.config.app_detector_dir) + "/custom/userappid.conf"; + if (access(file_path.c_str(), F_OK)) + file_path = std::string(ctxt.config.app_detector_dir) + "/../userappid.conf"; + ctxt.get_odp_ctxt().get_app_info_mgr().dump_appid_configurations(file_path); + } LogMessage("== reload detectors complete\n"); request.respond("== reload detectors complete\n", from_shell, true); Swapper::set_reload_in_progress(false);