From: Hui Cao (huica) Date: Fri, 15 Dec 2017 13:43:28 +0000 (-0500) Subject: Merge pull request #1085 in SNORT/snort3 from fw_file to master X-Git-Tag: 3.0.0-242~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6f8307a0da62443919487fe35caccdda8fb2d8a4;p=thirdparty%2Fsnort3.git Merge pull request #1085 in SNORT/snort3 from fw_file to master Squashed commit of the following: commit 5f3bce069300fe60a281e7251fc5b200305b6caf Author: Victor Roemer Date: Thu Dec 14 14:00:05 2017 -0500 inspector_manager: Fix acquire commit 25ff14c2f924b9699279cab6dd70d06d63ac37ac Author: Victor Roemer (viroemer) Date: Thu Dec 14 10:50:20 2017 -0500 inspector_manager: dflt only --- diff --git a/src/file_api/file_config.cc b/src/file_api/file_config.cc index 4e82293a0..4f0cd201d 100644 --- a/src/file_api/file_config.cc +++ b/src/file_api/file_config.cc @@ -98,7 +98,7 @@ std::string file_type_name(uint32_t id) FileConfig* get_file_config () { - FileInspect* fi = (FileInspect*)InspectorManager::get_inspector(FILE_ID_NAME); + FileInspect* fi = (FileInspect*)InspectorManager::get_inspector(FILE_ID_NAME, true); if (fi) return (fi->config); diff --git a/src/file_api/file_flows.cc b/src/file_api/file_flows.cc index 8bb97daa0..2def67174 100644 --- a/src/file_api/file_flows.cc +++ b/src/file_api/file_flows.cc @@ -65,7 +65,7 @@ FileFlows* FileFlows::get_file_flows(Flow* flow) if (fd) return fd; - FileInspect* fi = (FileInspect*)InspectorManager::get_inspector(FILE_ID_NAME); + FileInspect* fi = (FileInspect*)InspectorManager::get_inspector(FILE_ID_NAME, true); if (FileService::is_file_service_enabled() and fi) { diff --git a/src/file_api/file_lib.cc b/src/file_api/file_lib.cc index 6a5a069c9..ca1e463f9 100644 --- a/src/file_api/file_lib.cc +++ b/src/file_api/file_lib.cc @@ -253,7 +253,7 @@ FileContext::FileContext () file_signature_context = nullptr; file_capture = nullptr; file_segments = nullptr; - inspector = (FileInspect*)InspectorManager::acquire(FILE_ID_NAME, SnortConfig::get_conf()); + inspector = (FileInspect*)InspectorManager::acquire(FILE_ID_NAME, true); config = inspector->config; } diff --git a/src/managers/inspector_manager.cc b/src/managers/inspector_manager.cc index 95fb6d987..0d706c4a2 100644 --- a/src/managers/inspector_manager.cc +++ b/src/managers/inspector_manager.cc @@ -512,7 +512,12 @@ Inspector* InspectorManager::get_binder() // FIXIT-P cache get_inspector() returns or provide indexed lookup Inspector* InspectorManager::get_inspector(const char* key, bool dflt_only) { - InspectionPolicy* pi = get_inspection_policy(); + InspectionPolicy* pi; + + if (dflt_only) + pi = get_default_inspection_policy(SnortConfig::get_conf()); + else + pi = get_inspection_policy(); if ( !pi || !pi->framework_policy ) return nullptr; @@ -823,9 +828,9 @@ static bool configure(SnortConfig* sc, FrameworkPolicy* fp, bool cloned) return ok; } -Inspector* InspectorManager::acquire(const char* key, SnortConfig* sc) +Inspector* InspectorManager::acquire(const char* key, bool dflt_only) { - Inspector* pi = get_inspector(key, sc); + Inspector* pi = get_inspector(key, dflt_only); if ( !pi ) FatalError("unconfigured inspector: '%s'.\n", key); diff --git a/src/managers/inspector_manager.h b/src/managers/inspector_manager.h index 782856bf2..374fd16f1 100644 --- a/src/managers/inspector_manager.h +++ b/src/managers/inspector_manager.h @@ -63,7 +63,7 @@ public: SO_PUBLIC static Inspector* get_binder(); - SO_PUBLIC static Inspector* acquire(const char* key, SnortConfig*); + SO_PUBLIC static Inspector* acquire(const char* key, bool dflt_only = false); SO_PUBLIC static void release(Inspector*); static bool configure(SnortConfig*, bool cloned = false);