X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/d394e187f188697887dd12bac03aebfc867e8c5e..b6dc7c53f5374b1798d74fe752e962266645cca0:/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h diff --git a/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h b/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h index 453ce382..2d932d54 100644 --- a/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h +++ b/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h @@ -118,7 +118,8 @@ private: //----------------------------------------------------------------------------- struct IA_USER { IA_USER() - : lastSendAlive(0), + : user(NULL), + lastSendAlive(0), rnd(random()), port(0), protoVer(0), @@ -185,7 +186,20 @@ private: FREEMB freeMbShowType; }; //----------------------------------------------------------------------------- +class AUTH_IA; +//----------------------------------------------------------------------------- +class DEL_USER_NOTIFIER: public NOTIFIER_BASE { +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(); @@ -315,19 +329,7 @@ private: uint32_t enabledDirs; - class DEL_USER_NONIFIER: public NOTIFIER_BASE { - 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 &, void> { public: @@ -342,5 +344,10 @@ private: }; //----------------------------------------------------------------------------- +inline +void DEL_USER_NOTIFIER::Notify(const USER_PTR & user) +{ + auth.DelUser(user); +} #endif