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);
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)
{
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;
}
// 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;
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);
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);