From: Russ Combs Date: Mon, 25 Aug 2014 00:41:23 +0000 (-0400) Subject: more cleanup X-Git-Tag: 3.0.0-233~1419^2~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fed53f3467e85f73cb160043954a926d22d8ec0d;p=thirdparty%2Fsnort3.git more cleanup --- diff --git a/ChangeLog b/ChangeLog index f5df3dc98..1f8604f62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,7 @@ -- changed --help to just cmd line options and added --help! -- fixed Xcode warnings -- fixed sflsq cursor +-- additional cleanup 115 -- remove share.h diff --git a/src/main/snort.cc b/src/main/snort.cc index 74399c63e..66f2318e4 100644 --- a/src/main/snort.cc +++ b/src/main/snort.cc @@ -24,6 +24,7 @@ # include "config.h" #endif +#include #include using namespace std; @@ -959,8 +960,12 @@ void snort_rotate() SetRotatePerfFileFlag(); } +int wtf_start[8]; +int wtf_stop[8]; + void snort_thread_init(const char* intf) { +++wtf_start[get_instance_id()]; // FIXIT-H the start-up sequence is a little off due to dropping privs DAQ_New(snort_conf, intf); DAQ_Start(); @@ -985,10 +990,12 @@ void snort_thread_init(const char* intf) IpsManager::setup_options(); ActionManager::thread_init(snort_conf); InspectorManager::thread_init(snort_conf); +++wtf_start[get_instance_id()]; } void snort_thread_term() { +++wtf_stop[get_instance_id()]; #ifdef PPM_MGR ppm_sum_stats(); #endif @@ -1018,5 +1025,6 @@ void snort_thread_term() SnortEventqFree(); Active_Term(); PacketManager::thread_term(); +++wtf_stop[get_instance_id()]; } diff --git a/src/managers/inspector_manager.cc b/src/managers/inspector_manager.cc index 9523ae1fd..466b1db17 100644 --- a/src/managers/inspector_manager.cc +++ b/src/managers/inspector_manager.cc @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include "module_manager.h" #include "flow/flow.h" @@ -98,9 +98,9 @@ PHInstance::~PHInstance() handler->rem_ref(); } -typedef list PHGlobalList; -typedef list PHClassList; -typedef list PHInstanceList; +typedef vector PHGlobalList; +typedef vector PHClassList; +typedef vector PHInstanceList; typedef list PHList; static PHGlobalList s_handlers; @@ -194,7 +194,7 @@ void InspectorManager::add_plugin(const InspectApi* api) static const InspectApi* get_plugin(const char* keyword) { for ( auto* p : s_handlers ) - if ( !strcasecmp(p->api.base.name, keyword) ) + if ( !strcmp(p->api.base.name, keyword) ) return &p->api; return nullptr; @@ -275,9 +275,7 @@ static PHInstance* get_instance( FrameworkPolicy* fp, const char* keyword) { for ( auto* p : fp->ilist ) - //if ( !strncasecmp(p->pp_class.api.base.name, keyword, - // strlen(p->pp_class.api.base.name)) ) - if ( !strcasecmp(p->pp_class.api.base.name, keyword) ) + if ( !strcmp(p->pp_class.api.base.name, keyword) ) return p; return nullptr; @@ -293,7 +291,7 @@ static PHInstance* get_new( p = new PHInstance(*ppc); - if ( !p->handler ) // FIXIT-M is this even possible? + if ( !p->handler ) { delete p; return NULL; @@ -305,7 +303,6 @@ static PHInstance* get_new( // FIXIT-M create a separate list for meta handlers? is there really more than one? void InspectorManager::dispatch_meta (FrameworkPolicy* fp, int type, const uint8_t* data) { - // FIXIT-M change to select instance by policy and pass that in for ( auto* p : fp->ilist ) p->handler->meta(type, data); } @@ -357,11 +354,11 @@ void InspectorManager::delete_config (SnortConfig* sc) static PHClass* GetClass(const char* keyword, FrameworkConfig* fc) { for ( auto* p : fc->clist ) - if ( !strcasecmp(p->api.base.name, keyword) ) + if ( !strcmp(p->api.base.name, keyword) ) return p; for ( auto* p : s_handlers ) - if ( !strcasecmp(p->api.base.name, keyword) ) + if ( !strcmp(p->api.base.name, keyword) ) { if ( p->init ) { @@ -376,19 +373,16 @@ static PHClass* GetClass(const char* keyword, FrameworkConfig* fc) return NULL; } -// this is per thread void InspectorManager::thread_init(SnortConfig* sc) { - // FIXIT-H BIND the policy related logic herein moves to binder Inspector::slot = get_instance_id(); - for ( auto* p : sc->framework_config->clist ) - if ( p->api.tinit ) - p->api.tinit(); + if ( wtf_init[get_instance_id()]++ ) + return; InspectionPolicy* pi = get_inspection_policy(); - if ( !pi->framework_policy ) + if ( !pi || !pi->framework_policy ) return; for ( auto* p : pi->framework_policy->ilist ) @@ -418,7 +412,7 @@ void InspectorManager::thread_term(SnortConfig* sc) void InspectorManager::instantiate( const InspectApi* api, Module*, SnortConfig* sc) { - // FIXIT-H only configures Lua inspectors in base policy; must be + // FIXIT-H only configures inspectors in base policy; must be // revisited when bindings are implemented FrameworkConfig* fc = sc->framework_config; FrameworkPolicy* fp = sc->policy_map->inspection_policy[0]->framework_policy; @@ -444,17 +438,15 @@ void InspectorManager::instantiate( bool InspectorManager::configure(SnortConfig *sc) { Inspector::max_slots = sc->max_threads; - s_handlers.sort(PHGlobal::comp); + sort(s_handlers.begin(), s_handlers.end(), PHGlobal::comp); - // FIXIT-H use FrameworkConfig or FrameworkPolicy ? - //FrameworkConfig* fc = sc->framework_config; FrameworkPolicy* fp = sc->policy_map->inspection_policy[0]->framework_policy; bool ok = true; for ( auto* p : fp->ilist ) ok = p->handler->configure(sc) && ok; - fp->ilist.sort(PHInstance::comp); + sort(fp->ilist.begin(), fp->ilist.end(), PHInstance::comp); fp->vectorize(); return ok; diff --git a/src/network_inspectors/binder/binder.cc b/src/network_inspectors/binder/binder.cc index 99fdbce37..cbd780819 100644 --- a/src/network_inspectors/binder/binder.cc +++ b/src/network_inspectors/binder/binder.cc @@ -44,6 +44,14 @@ THREAD_LOCAL ProfileStats bindPerfStats; // helpers //------------------------------------------------------------------------- +Binding::Binding() +{ + role = BR_EITHER; + proto = BP_ANY; + action = BA_INSPECT; + ports.set(); +} + // FIXIT-H bind this is a temporary hack. note that both ends must be set // independently and that we must ref count inspectors. static void set_session(Flow* flow, const char* key) diff --git a/src/network_inspectors/binder/binder.h b/src/network_inspectors/binder/binder.h index 5db8d4318..7e91d7b6a 100644 --- a/src/network_inspectors/binder/binder.h +++ b/src/network_inspectors/binder/binder.h @@ -67,8 +67,7 @@ struct Binding std::string name; std::string file; - Binding() - { role = BR_EITHER; proto = BP_ANY; action = BA_INSPECT; }; + Binding(); }; #endif diff --git a/src/network_inspectors/perf_monitor/perf_monitor.cc b/src/network_inspectors/perf_monitor/perf_monitor.cc index b35bc298d..2a83f7387 100644 --- a/src/network_inspectors/perf_monitor/perf_monitor.cc +++ b/src/network_inspectors/perf_monitor/perf_monitor.cc @@ -53,7 +53,7 @@ #include "profiler.h" #include "framework/inspector.h" -THREAD_LOCAL SFPERF *perfmon_config = NULL; +THREAD_LOCAL SFPERF* perfmon_config = nullptr; static const char* mod_name = "perf_monitor"; diff --git a/src/service_inspectors/http_inspect/http_inspect.cc b/src/service_inspectors/http_inspect/http_inspect.cc index dc4ed097e..20bfbb1e4 100644 --- a/src/service_inspectors/http_inspect/http_inspect.cc +++ b/src/service_inspectors/http_inspect/http_inspect.cc @@ -244,9 +244,6 @@ public: bool get_buf(InspectionBuffer::Type, Packet*, InspectionBuffer&); bool get_buf(unsigned, Packet*, InspectionBuffer&); - void tinit(); - void tterm(); - private: HTTPINSPECT_CONF* config; HttpData* global; @@ -309,13 +306,6 @@ bool HttpInspect::configure (SnortConfig* sc) CheckGzipConfig(config->global); CheckMemcap(config->global); - return !HttpInspectVerifyPolicy(sc, config); -} - -void HttpInspect::tinit() -{ - memset(&hi_stats, 0, sizeof(HIStats)); - config->global->decode_conf.file_depth = file_api->get_max_file_depth(); if (config->global->decode_conf.file_depth > -1) @@ -327,10 +317,7 @@ void HttpInspect::tinit() updateMaxDepth(config->global->decode_conf.file_depth, &config->global->decode_conf.max_depth); } -} - -void HttpInspect::tterm() -{ + return !HttpInspectVerifyPolicy(sc, config); } void HttpInspect::show(SnortConfig*)