]> git.stg.codes - stg.git/blobdiff - projects/stargazer/traffcounter_impl.cpp
Check IP in USERS_IMPL::Authorize as early as possible
[stg.git] / projects / stargazer / traffcounter_impl.cpp
index 424cc09468f949b5ed5c13b87a8a2c1b4eea2b1b..ff18a5e2f17c36ee4e17adaccf3cba80793063c9 100644 (file)
@@ -37,6 +37,7 @@
 #include <csignal>
 #include <cassert>
 #include <cstdio> // fopen and similar
+#include <cstdlib> // strtol
 
 #include "stg/common.h"
 #include "stg/locker.h"
@@ -57,7 +58,8 @@ tcp = 0, udp, icmp, tcp_udp, all
 
 //-----------------------------------------------------------------------------
 TRAFFCOUNTER_IMPL::TRAFFCOUNTER_IMPL(USERS_IMPL * u, const std::string & fn)
-    : WriteServLog(GetStgLogger()),
+    : TRAFFCOUNTER(),
+      WriteServLog(GetStgLogger()),
       rulesFileName(fn),
       monitoring(false),
       users(u),
@@ -98,13 +100,8 @@ if (ReadRules())
 
 printfd(__FILE__, "TRAFFCOUNTER::Start()\n");
 int h = users->OpenSearch();
+assert(h && "USERS::OpenSearch is always correct");
 USER_IMPL * u;
-if (!h)
-    {
-    printfd(__FILE__, "TRAFFCOUNTER_IMPL::Start() - Cannot get users\n");
-    WriteServLog("TRAFFCOUNTER: Cannot get users.");
-    return -1;
-    }
 
 while (users->SearchNext(h, &u) == 0)
     {
@@ -130,11 +127,7 @@ if (stopped)
 running = false;
 
 int h = users->OpenSearch();
-if (!h)
-    {
-    WriteServLog("TRAFFCOUNTER: Fatal error: Cannot get users.");
-    return -1;
-    }
+assert(h && "USERS::OpenSearch is always correct");
 
 USER_IMPL * u;
 while (users->SearchNext(h, &u) == 0)