]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/authorization/inetaccess/inetaccess.h
Todo for SMUX added
[stg.git] / projects / stargazer / plugins / authorization / inetaccess / inetaccess.h
index 1b2a0f8a36186a5ade95f4bd7fc436f70354bb86..e16c02574c95d45aa6c8516c4062f85ffdff42cf 100644 (file)
 #include <functional>
 #include <utility>
 
 #include <functional>
 #include <utility>
 
-#include "os_int.h"
-#include "auth.h"
-#include "store.h"
-#include "notifer.h"
-#include "user_ips.h"
-#include "user.h"
-#include "users.h"
-#include "ia_packets.h"
-#include "blowfish.h"
-#include "stg_logger.h"
-#include "utime.h"
+#include "stg/os_int.h"
+#include "stg/auth.h"
+#include "stg/store.h"
+#include "stg/notifer.h"
+#include "stg/user_ips.h"
+#include "stg/user.h"
+#include "stg/users.h"
+#include "stg/ia_packets.h"
+#include "stg/blowfish.h"
+#include "stg/logger.h"
+#include "stg/utime.h"
 
 extern "C" PLUGIN * GetPlugin();
 
 
 extern "C" PLUGIN * GetPlugin();
 
@@ -118,7 +118,8 @@ private:
 //-----------------------------------------------------------------------------
 struct IA_USER {
     IA_USER()
 //-----------------------------------------------------------------------------
 struct IA_USER {
     IA_USER()
-        : lastSendAlive(0),
+        : user(NULL),
+          lastSendAlive(0),
           rnd(random()),
           port(0),
           protoVer(0),
           rnd(random()),
           port(0),
           protoVer(0),
@@ -185,7 +186,20 @@ private:
     FREEMB          freeMbShowType;
 };
 //-----------------------------------------------------------------------------
     FREEMB          freeMbShowType;
 };
 //-----------------------------------------------------------------------------
-class AUTH_IA :public BASE_AUTH {
+class AUTH_IA;
+//-----------------------------------------------------------------------------
+class DEL_USER_NOTIFIER: public NOTIFIER_BASE<USER_PTR> {
+public:
+    DEL_USER_NOTIFIER(AUTH_IA & a) : auth(a) {}
+    virtual ~DEL_USER_NOTIFIER() {}
+
+    void Notify(const USER_PTR & user);
+private:
+    AUTH_IA & auth;
+};
+//-----------------------------------------------------------------------------
+class AUTH_IA :public AUTH {
+friend class DEL_USER_NOTIFIER;
 public:
                         AUTH_IA();
     virtual             ~AUTH_IA();
 public:
                         AUTH_IA();
     virtual             ~AUTH_IA();
@@ -315,19 +329,7 @@ private:
 
     uint32_t            enabledDirs;
 
 
     uint32_t            enabledDirs;
 
-    class DEL_USER_NONIFIER: public NOTIFIER_BASE<USER_PTR> {
-    public:
-        DEL_USER_NONIFIER(AUTH_IA & a) : auth(a) {}
-        virtual ~DEL_USER_NONIFIER() {}
-
-        void Notify(const USER_PTR & user)
-            {
-            auth.DelUser(user);
-            }
-
-    private:
-        AUTH_IA & auth;
-    } onDelUserNotifier;
+    DEL_USER_NOTIFIER   onDelUserNotifier;
 
     class UnauthorizeUser : std::unary_function<const std::pair<uint32_t, IA_USER> &, void> {
         public:
 
     class UnauthorizeUser : std::unary_function<const std::pair<uint32_t, IA_USER> &, void> {
         public:
@@ -342,5 +344,10 @@ private:
 
 };
 //-----------------------------------------------------------------------------
 
 };
 //-----------------------------------------------------------------------------
+inline
+void DEL_USER_NOTIFIER::Notify(const USER_PTR & user)
+{
+    auth.DelUser(user);
+}
 
 #endif
 
 #endif