X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/7efaa3ceb1b98d428a3b56e5d377e9330d49aa30..b5e75bbd70279384c22f598a6f41f0714b537e4e:/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h?ds=sidebyside diff --git a/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h b/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h index 7bc704db..5b280880 100644 --- a/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h +++ b/projects/stargazer/plugins/authorization/inetaccess/inetaccess.h @@ -38,17 +38,17 @@ #include #include -#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(); @@ -118,7 +118,9 @@ private: //----------------------------------------------------------------------------- struct IA_USER { IA_USER() - : lastSendAlive(0), + : login(), + user(NULL), + lastSendAlive(0), rnd(random()), port(0), protoVer(0), @@ -136,7 +138,8 @@ struct IA_USER { }; IA_USER(const IA_USER & u) - : user(u.user), + : login(u.login), + user(u.user), phase(u.phase), lastSendAlive(u.lastSendAlive), rnd(u.rnd), @@ -151,7 +154,8 @@ struct IA_USER { memcpy(&ctx, &u.ctx, sizeof(BLOWFISH_CTX)); }; - USER_PTR user; + std::string login; + CONST_USER_PTR user; IA_PHASE phase; UTIME lastSendAlive; uint32_t rnd; @@ -177,7 +181,6 @@ public: FREEMB GetFreeMbShowType() const { return freeMbShowType; }; private: - int ParseIntInRange(const std::string & str, int min, int max, int * val); int userDelay; int userTimeout; uint16_t port; @@ -185,17 +188,25 @@ 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_NONIFIER; +friend class DEL_USER_NOTIFIER; public: AUTH_IA(); virtual ~AUTH_IA(); void SetUsers(USERS * u) { users = u; } - void SetTariffs(TARIFFS *) {} - void SetAdmins(ADMINS *) {} - void SetTraffcounter(TRAFFCOUNTER *) {} - void SetStore(STORE *) {} void SetStgSettings(const SETTINGS * s) { stgSettings = s; } void SetSettings(const MODULE_SETTINGS & s) { settings = s; } int ParseSettings(); @@ -220,7 +231,7 @@ private: void DelUser(USER_PTR u); int RecvData(char * buffer, int bufferSize); int CheckHeader(const char * buffer, int * protoVer); - int PacketProcessor(char * buff, int dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR * user); + int PacketProcessor(char * buff, int dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR user); int Process_CONN_SYN_6(CONN_SYN_6 * connSyn, IA_USER * iaUser, uint32_t sip); int Process_CONN_SYN_7(CONN_SYN_7 * connSyn, IA_USER * iaUser, uint32_t sip); @@ -275,8 +286,6 @@ private: int RealSendMessage7(const STG_MSG & msg, uint32_t ip, IA_USER & user); int RealSendMessage8(const STG_MSG & msg, uint32_t ip, IA_USER & user); - bool WaitPackets(int sd) const; - BLOWFISH_CTX ctxS; //for loginS mutable std::string errorStr; @@ -316,26 +325,14 @@ 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: UnauthorizeUser(AUTH_IA * a) : auth(a) {} void operator()(const std::pair & p) { - p.second.user->Unauthorize(auth); + auth->users->Unauthorize(p.second.user->GetLogin(), auth); } private: AUTH_IA * auth; @@ -343,5 +340,10 @@ private: }; //----------------------------------------------------------------------------- +inline +void DEL_USER_NOTIFIER::Notify(const USER_PTR & user) +{ + auth.DelUser(user); +} #endif