]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3303: appid: appid api to provide the path to appid detector directory
authorMasud Hasan (mashasan) <mashasan@cisco.com>
Mon, 14 Mar 2022 18:35:02 +0000 (18:35 +0000)
committerMasud Hasan (mashasan) <mashasan@cisco.com>
Mon, 14 Mar 2022 18:35:02 +0000 (18:35 +0000)
Merge in SNORT/snort3 from ~SATHIRKA/snort3:mercury_pkt_filter_cfg to master

Squashed commit of the following:

commit 4e47900b0a45e810a66aaa37365eaf0a5f3fd6ab
Author: Sreeja Athirkandathil Narayanan <sathirka@cisco.com>
Date:   Tue Feb 15 15:36:12 2022 -0500

    appid: appid api to provide the path to appid detector directory

src/network_inspectors/appid/appid_api.cc
src/network_inspectors/appid/appid_api.h
src/network_inspectors/appid/appid_inspector.h
src/network_inspectors/appid/test/appid_api_test.cc
src/network_inspectors/appid/test/appid_mock_inspector.h

index 24542300995dac4593097c0afec4d54e56c38714..8c9787cfdc2957d90631bb55720963820cd44454 100644 (file)
@@ -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;
+}
index f59562c918ec7d6f1e0c24c4f6a2341354cb74b8..313321b566dac25517af8e8091af3e745f61a16a 100644 (file)
@@ -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
     {
index 2ff92ee105159c2128c9ee271072790a35c8f2ff..a182e38b154fbd6ed28eb0e44ce31aa4d194d3ee 100644 (file)
@@ -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;
index fe6f46c53df44126605b66e6f9520057dd3b52ae..951150cadb31092c91256e39f5da1a80791faea8 100644 (file)
@@ -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);
index 7b8035455e90a3ea961f395c08b0e80273c086e4..5a5e546673c3d5a8f5316e6529173dbc4706bdaa 100644 (file)
@@ -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