]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/authorization/inetaccess/inetaccess.h
Fix occasional crash on second and more reload in SMUX plugin
[stg.git] / projects / stargazer / plugins / authorization / inetaccess / inetaccess.h
index ad1c7fe7352c163c5139f55dbc7ff83f11a4a6dc..d0f6b5ac271691a6cad1b5c8186a8aaf6088a69d 100644 (file)
@@ -252,8 +252,8 @@ public:
 
     const std::string & GetStrError() const { return errorStr; }
     const std::string   GetVersion() const { return "InetAccess authorization plugin v.1.4"; }
 
     const std::string & GetStrError() const { return errorStr; }
     const std::string   GetVersion() const { return "InetAccess authorization plugin v.1.4"; }
-    uint16_t            GetStartPosition() const { return 50; }
-    uint16_t            GetStopPosition() const { return 50; }
+    uint16_t            GetStartPosition() const { return 30; }
+    uint16_t            GetStopPosition() const { return 30; }
 
     int                 SendMessage(const STG_MSG & msg, uint32_t ip) const;
 
 
     int                 SendMessage(const STG_MSG & msg, uint32_t ip) const;
 
@@ -364,20 +364,21 @@ private:
 
     DEL_USER_NOTIFIER   onDelUserNotifier;
 
 
     DEL_USER_NOTIFIER   onDelUserNotifier;
 
-    class UnauthorizeUser : std::unary_function<const std::pair<uint32_t, IA_USER> &, void> {
-        public:
-            UnauthorizeUser(AUTH_IA * a) : auth(a) {}
-            UnauthorizeUser(const UnauthorizeUser & rvalue) : auth(rvalue.auth) {}
-            void operator()(const std::pair<uint32_t, IA_USER> & p)
-            {
-                auth->users->Unauthorize(p.second.user->GetLogin(), auth);
-            }
-        private:
-            UnauthorizeUser & operator=(const UnauthorizeUser & rvalue);
-
-            AUTH_IA * auth;
-    };
-
+    friend class UnauthorizeUser;
+};
+//-----------------------------------------------------------------------------
+class UnauthorizeUser : std::unary_function<const std::pair<uint32_t, IA_USER> &, void> {
+    public:
+        UnauthorizeUser(AUTH_IA * a) : auth(a) {}
+        UnauthorizeUser(const UnauthorizeUser & rvalue) : auth(rvalue.auth) {}
+        void operator()(const std::pair<uint32_t, IA_USER> & p)
+        {
+            auth->users->Unauthorize(p.second.user->GetLogin(), auth);
+        }
+    private:
+        UnauthorizeUser & operator=(const UnauthorizeUser & rvalue);
+
+        AUTH_IA * auth;
 };
 //-----------------------------------------------------------------------------
 inline
 };
 //-----------------------------------------------------------------------------
 inline