]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp
Виправлено помилки виклику localtime із різних потоків
[stg.git] / projects / stargazer / plugins / authorization / inetaccess / inetaccess.cpp
index 0319ef8db360791ee98daa6f4f6a36ce8ce23eb8..47ff002d6d947fd636e44f05e397ccd32567ceee 100644 (file)
 
 #include <sys/types.h>
 #include <sys/socket.h>
 
 #include <sys/types.h>
 #include <sys/socket.h>
+
 #include <csignal>
 #include <cstdlib>
 #include <csignal>
 #include <cstdlib>
+#include <cstdio> // snprintf
+#include <cerrno>
 #include <algorithm>
 
 #include "inetaccess.h"
 #include <algorithm>
 
 #include "inetaccess.h"
 
 extern volatile const time_t stgTime;
 
 
 extern volatile const time_t stgTime;
 
+void InitEncrypt(BLOWFISH_CTX * ctx, const string & password);
+void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
+void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
+
 //-----------------------------------------------------------------------------
 class IA_CREATOR
 {
 //-----------------------------------------------------------------------------
 class IA_CREATOR
 {
@@ -323,6 +330,9 @@ AUTH_IA::AUTH_IA()
     : nonstop(false),
       isRunningRun(false),
       isRunningRunTimeouter(false),
     : nonstop(false),
       isRunningRun(false),
       isRunningRunTimeouter(false),
+      users(NULL),
+      stgSettings(NULL),
+      listenSocket(-1),
       WriteServLog(GetStgLogger()),
       enabledDirs(0xFFffFFff),
       onDelUserNotifier(*this)
       WriteServLog(GetStgLogger()),
       enabledDirs(0xFFffFFff),
       onDelUserNotifier(*this)
@@ -1128,30 +1138,6 @@ gettimeofday(&tv, NULL);
 return res;
 }
 //-----------------------------------------------------------------------------
 return res;
 }
 //-----------------------------------------------------------------------------
-void AUTH_IA::InitEncrypt(BLOWFISH_CTX * ctx, const string & password)
-{
-unsigned char keyL[PASSWD_LEN];  // ðÁÒÏÌØ ÄÌÑ ÛÉÆÒÏ×ËÉ
-memset(keyL, 0, PASSWD_LEN);
-strncpy((char *)keyL, password.c_str(), PASSWD_LEN);
-Blowfish_Init(ctx, keyL, PASSWD_LEN);
-}
-//-----------------------------------------------------------------------------
-void AUTH_IA::Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
-{
-// len8 - ÄÌÉÎÁ × 8-ÍÉ ÂÁÊÔÏ×ÙÈ ÂÌÏËÁÈ
-
-for (int i = 0; i < len8; i++)
-    DecodeString(dst + i * 8, src + i * 8, ctx);
-}
-//-----------------------------------------------------------------------------
-void AUTH_IA::Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
-{
-// len8 - ÄÌÉÎÁ × 8-ÍÉ ÂÁÊÔÏ×ÙÈ ÂÌÏËÁÈ
-
-for (int i = 0; i < len8; i++)
-    EncodeString(dst + i * 8, src + i * 8, ctx);
-}
-//-----------------------------------------------------------------------------
 int AUTH_IA::SendMessage(const STG_MSG & msg, uint32_t ip) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 int AUTH_IA::SendMessage(const STG_MSG & msg, uint32_t ip) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
@@ -1835,3 +1821,30 @@ if (res == 0) // Timeout
 
 return true;
 }
 
 return true;
 }
+//-----------------------------------------------------------------------------
+inline
+void InitEncrypt(BLOWFISH_CTX * ctx, const string & password)
+{
+unsigned char keyL[PASSWD_LEN];  // ðÁÒÏÌØ ÄÌÑ ÛÉÆÒÏ×ËÉ
+memset(keyL, 0, PASSWD_LEN);
+strncpy((char *)keyL, password.c_str(), PASSWD_LEN);
+Blowfish_Init(ctx, keyL, PASSWD_LEN);
+}
+//-----------------------------------------------------------------------------
+inline
+void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+{
+// len8 - ÄÌÉÎÁ × 8-ÍÉ ÂÁÊÔÏ×ÙÈ ÂÌÏËÁÈ
+
+for (int i = 0; i < len8; i++)
+    DecodeString(dst + i * 8, src + i * 8, ctx);
+}
+//-----------------------------------------------------------------------------
+inline
+void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+{
+// len8 - ÄÌÉÎÁ × 8-ÍÉ ÂÁÊÔÏ×ÙÈ ÂÌÏËÁÈ
+
+for (int i = 0; i < len8; i++)
+    EncodeString(dst + i * 8, src + i * 8, ctx);
+}