]> git.stg.codes - stg.git/blobdiff - projects/stargazer/main.cpp
Rename BASE_AUTH and BASE_STORE to AUTH and STORE
[stg.git] / projects / stargazer / main.cpp
index 7c9945b080670215343fa2736f67a5315b22918e..12fa738391a1bc7b2f1a514f210c418e521ccc5e 100644 (file)
@@ -24,7 +24,7 @@
  $Author: faust $
  */
 
-#include <stdio.h>
+//#include <stdio.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 #include <dlfcn.h>
-#include <signal.h>
 #include <fcntl.h>
 
+#include <csignal>
+#include <cerrno>
 #include <fstream>
 #include <vector>
 #include <set>
@@ -45,8 +46,9 @@
 
 #include "settings.h"
 #include "user.h"
-#include "users.h"
-#include "admins.h"
+#include "users_impl.h"
+#include "admins_impl.h"
+#include "tariffs_impl.h"
 #include "common.h"
 #include "traffcounter.h"
 #include "base_plugin.h"
@@ -93,7 +95,7 @@ class STG_STOPPER
 {
 public:
     STG_STOPPER() { nonstop = true; }
-    bool    GetStatus() { return nonstop; };
+    bool    GetStatus() const { return nonstop; };
     #ifdef NO_DAEMON
     void    Stop(const char * __file__, int __line__)
     #else
@@ -128,12 +130,6 @@ else
     }
 }
 //-----------------------------------------------------------------------------
-void CatchPROF(int)
-{
-/*STG_LOGGER & WriteServLog = GetStgLogger();
-WriteServLog("CatchPROF");*/
-}
-//-----------------------------------------------------------------------------
 void CatchUSR1(int)
 {
 
@@ -203,10 +199,10 @@ if (childPid == stgChildPid)
     childExited = true;
     }
 }
-//-----------------------------------------------------------------------------
+/*//-----------------------------------------------------------------------------
 void CatchSEGV(int, siginfo_t *, void *)
 {
-/*char fileName[50];
+char fileName[50];
 sprintf(fileName, "/tmp/stg_segv.%d", getpid());
 FILE * f = fopen(fileName, "wt");
 if (f)
@@ -254,8 +250,8 @@ segv_action.sa_sigaction = NULL;
 segv_action.sa_flags = SA_SIGINFO;
 segv_action.sa_restorer = NULL;
 
-sigaction(SIGSEGV, &segv_action, &segv_action_old);*/
-}
+sigaction(SIGSEGV, &segv_action, &segv_action_old);
+}*/
 //-----------------------------------------------------------------------------
 static void SetSignalHandlers()
 {
@@ -282,13 +278,6 @@ newsa.sa_handler = CatchTERM;
 newsa.sa_mask = sigmask;
 newsa.sa_flags = 0;
 sigaction(SIGINT, &newsa, &oldsa);
-/*///////
-sigemptyset(&sigmask);
-sigaddset(&sigmask, SIGPROF);
-newsa.sa_handler = CatchPROF;
-newsa.sa_mask = sigmask;
-newsa.sa_flags = 0;
-sigaction(SIGPROF, &newsa, &oldsa);*/
 //////
 sigemptyset(&sigmask);
 sigaddset(&sigmask, SIGPIPE);
@@ -506,7 +495,6 @@ if (settings->ReadSettings())
 string startFile(settings->GetConfDir() + START_FILE);
 #endif
 
-//SetSignalHandlers();
 if (ForkAndWait(settings->GetConfDir()) < 0)
     {
     STG_LOGGER & WriteServLog = GetStgLogger();
@@ -518,14 +506,13 @@ STG_LOGGER & WriteServLog = GetStgLogger();
 WriteServLog.SetLogFileName(settings->GetLogFileName());
 WriteServLog("Stg v. %s", SERVER_VERSION);
 
-for (int i = 0; i < settings->GetExecutersNum(); i++)
+for (size_t i = 0; i < settings->GetExecutersNum(); i++)
     {
     int ret = StartScriptExecuter(argv[0], settings->GetExecMsgKey(), &msgID, settings);
     if (ret < 0)
         {
         STG_LOGGER & WriteServLog = GetStgLogger();
         WriteServLog("Start Script Executer error!");
-        //goto exitLbl;
         return 1;
         }
     if (ret == 1)
@@ -563,12 +550,11 @@ if (loop.Start())
 dataStore = storeLoader.GetStore();
 WriteServLog("Storage plugin: %s. Loading successfull.", dataStore->GetVersion().c_str());
 
-tariffs = new TARIFFS(dataStore);
-admins = new ADMINS(dataStore);
-users = new USERS(settings, dataStore, tariffs, admins->GetSysAdmin());
+tariffs = new TARIFFS_IMPL(dataStore);
+admins = new ADMINS_IMPL(dataStore);
+users = new USERS_IMPL(settings, dataStore, tariffs, *admins->GetSysAdmin());
 traffCnt = new TRAFFCOUNTER(users, tariffs, settings->GetRulesFileName());
 traffCnt->SetMonitorDir(settings->GetMonitorDir());
-//tariffs->SetUsers(users);
 
 modSettings = settings->GetModulesSettings();
 
@@ -660,8 +646,6 @@ WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++");
 creat(startFile.c_str(), S_IRUSR);
 #endif
 
-//*a_kill_it = 0;
-
 while (nonstop.GetStatus())
     {
     if (needRulesReloading)
@@ -715,7 +699,7 @@ if (loop.Stop())
 
 exitLblNotStarted:
 
-/*modIter = modules.begin();
+modIter = modules.begin();
 while (modIter != modules.end())
     {
     std::string name = modIter->GetFileName();
@@ -728,7 +712,7 @@ while (modIter != modules.end())
         printfd(__FILE__, "Failed to unload module '%s'\n", name.c_str());
         }
     ++modIter;
-    }*/
+    }
 
 if (traffCnt)
     {
@@ -776,5 +760,3 @@ delete settings;
 return 0;
 }
 //-----------------------------------------------------------------------------
-
-