]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
more cleanup
authorRuss Combs <rucombs@cisco.com>
Mon, 25 Aug 2014 00:41:23 +0000 (20:41 -0400)
committerRuss Combs <rucombs@cisco.com>
Mon, 25 Aug 2014 00:41:23 +0000 (20:41 -0400)
ChangeLog
src/main/snort.cc
src/managers/inspector_manager.cc
src/network_inspectors/binder/binder.cc
src/network_inspectors/binder/binder.h
src/network_inspectors/perf_monitor/perf_monitor.cc
src/service_inspectors/http_inspect/http_inspect.cc

index f5df3dc98028aed79453897aa8165d596e69eb2f..1f8604f628360bbfae656d1411f4f7cc9eab5b67 100644 (file)
--- 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
index 74399c63eb95a8658b9301854879b953be0a1c90..66f2318e4e2aa4a4882eb2ac9eed10d330fef557 100644 (file)
@@ -24,6 +24,7 @@
 # include "config.h"
 #endif
 
+#include <mutex>
 #include <string>
 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()];
 }
 
index 9523ae1fde25afe1220c55c8dc552acb838a0774..466b1db1793523c52aa4f2f22eca8ae52648e427 100644 (file)
@@ -23,7 +23,7 @@
 #include <assert.h>
 #include <algorithm>
 #include <list>
-#include <mutex>
+#include <vector>
 
 #include "module_manager.h"
 #include "flow/flow.h"
@@ -98,9 +98,9 @@ PHInstance::~PHInstance()
     handler->rem_ref();
 }
 
-typedef list<PHGlobal*> PHGlobalList;
-typedef list<PHClass*> PHClassList;
-typedef list<PHInstance*> PHInstanceList;
+typedef vector<PHGlobal*> PHGlobalList;
+typedef vector<PHClass*> PHClassList;
+typedef vector<PHInstance*> PHInstanceList;
 typedef list<Inspector*> 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;
index 99fdbce372135b58f3f8d1687c7f27a5c806a6de..cbd780819ebfff909da18b75f33d0574db369a6c 100644 (file)
@@ -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)
index 5db8d4318400fc88d20cd4b57ac7a2d7d9f9b304..7e91d7b6a79ff64b0e0c2223169c18a1955c0e68 100644 (file)
@@ -67,8 +67,7 @@ struct Binding
     std::string name;
     std::string file;
 
-    Binding()
-    { role = BR_EITHER; proto = BP_ANY; action = BA_INSPECT; };
+    Binding();
 };
 
 #endif
index b35bc298dd53e7363883ed7991ef5f8d08a01a61..2a83f7387a781eda0f5db6a567e6088b188ee8b2 100644 (file)
@@ -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";
 
index dc4ed097ee833767a792b2b18238215255796139..20bfbb1e48e06bc56e28d136c3819fafed87b332 100644 (file)
@@ -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*)