From: Masud Hasan (mashasan) Date: Mon, 14 Mar 2022 18:35:02 +0000 (+0000) Subject: Pull request #3303: appid: appid api to provide the path to appid detector directory X-Git-Tag: 3.1.26.0~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5eaed18566d823b0c517d1a684ae45a879127847;p=thirdparty%2Fsnort3.git Pull request #3303: appid: appid api to provide the path to appid detector directory Merge in SNORT/snort3 from ~SATHIRKA/snort3:mercury_pkt_filter_cfg to master Squashed commit of the following: commit 4e47900b0a45e810a66aaa37365eaf0a5f3fd6ab Author: Sreeja Athirkandathil Narayanan Date: Tue Feb 15 15:36:12 2022 -0500 appid: appid api to provide the path to appid detector directory --- diff --git a/src/network_inspectors/appid/appid_api.cc b/src/network_inspectors/appid/appid_api.cc index 245423009..8c9787cfd 100644 --- a/src/network_inspectors/appid/appid_api.cc +++ b/src/network_inspectors/appid/appid_api.cc @@ -265,3 +265,12 @@ bool AppIdApi::is_inspection_needed(const Inspector& inspector) const return false; } + +const char* AppIdApi::get_appid_detector_directory() const +{ + AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true); + if (!inspector) + return ""; + + return inspector->get_config().app_detector_dir; +} diff --git a/src/network_inspectors/appid/appid_api.h b/src/network_inspectors/appid/appid_api.h index f59562c91..313321b56 100644 --- a/src/network_inspectors/appid/appid_api.h +++ b/src/network_inspectors/appid/appid_api.h @@ -52,6 +52,7 @@ public: const char*, bool, AppId& service_id, AppId& client_id, AppId& payload_id); const AppIdSessionApi* get_appid_session_api(const Flow& flow) const; bool is_inspection_needed(const Inspector& g) const; + const char* get_appid_detector_directory() const; bool is_service_http_type(AppId service_id) const { diff --git a/src/network_inspectors/appid/appid_inspector.h b/src/network_inspectors/appid/appid_inspector.h index 2ff92ee10..a182e38b1 100644 --- a/src/network_inspectors/appid/appid_inspector.h +++ b/src/network_inspectors/appid/appid_inspector.h @@ -47,6 +47,7 @@ public: void tear_down(snort::SnortConfig*) override; void eval(snort::Packet*) override; AppIdContext& get_ctxt() const; + const AppIdConfig& get_config() const { return *config; } private: const AppIdConfig* config = nullptr; diff --git a/src/network_inspectors/appid/test/appid_api_test.cc b/src/network_inspectors/appid/test/appid_api_test.cc index fe6f46c53..951150cad 100644 --- a/src/network_inspectors/appid/test/appid_api_test.cc +++ b/src/network_inspectors/appid/test/appid_api_test.cc @@ -318,6 +318,11 @@ TEST(appid_api, is_service_http_type) CHECK_FALSE(appid_api.is_service_http_type(APP_ID_SMTP)); } +TEST(appid_api, get_appid_detector_directory) +{ + STRCMP_EQUAL(appid_api.get_appid_detector_directory(), "/path/to/appid/detectors/"); +} + int main(int argc, char** argv) { int rc = CommandLineTestRunner::RunAllTests(argc, argv); diff --git a/src/network_inspectors/appid/test/appid_mock_inspector.h b/src/network_inspectors/appid/test/appid_mock_inspector.h index 7b8035455..5a5e54667 100644 --- a/src/network_inspectors/appid/test/appid_mock_inspector.h +++ b/src/network_inspectors/appid/test/appid_mock_inspector.h @@ -70,11 +70,16 @@ void AppIdInspector::tear_down(snort::SnortConfig*) { } AppIdContext& AppIdInspector::get_ctxt() const { return *ctxt; } AppIdModule appid_mod; -AppIdInspector dummy_appid_inspector( appid_mod ); AppIdConfig appid_config; AppIdContext appid_ctxt(appid_config); THREAD_LOCAL OdpContext* pkt_thread_odp_ctxt = nullptr; +AppIdInspector dummy_appid_inspector( appid_mod ); -AppIdInspector::AppIdInspector(AppIdModule& ) { ctxt = &appid_ctxt; } +AppIdInspector::AppIdInspector(AppIdModule& ) +{ + ctxt = &appid_ctxt; + appid_config.app_detector_dir = "/path/to/appid/detectors/"; + config = &appid_config; +} #endif