#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();
//-----------------------------------------------------------------------------
struct IA_USER {
IA_USER()
- : lastSendAlive(0),
+ : user(NULL),
+ lastSendAlive(0),
rnd(random()),
port(0),
protoVer(0),
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;
FREEMB freeMbShowType;
};
//-----------------------------------------------------------------------------
+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:
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();
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;
uint32_t enabledDirs;
- 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)
- {
- 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:
};
//-----------------------------------------------------------------------------
+inline
+void DEL_USER_NOTIFIER::Notify(const USER_PTR & user)
+{
+ auth.DelUser(user);
+}
#endif