]> git.stg.codes - stg.git/blob - projects/sgauthstress/user.h
0bf533458c7e93ff1e0011fde2e19946708059d5
[stg.git] / projects / sgauthstress / user.h
1 #ifndef __USER_H__
2 #define __USER_H__
3
4 #include <ctime>
5 #include <string>
6
7 #include "stg/os_int.h"
8 #include "stg/blowfish.h"
9
10 class USER {
11     public:
12         USER(const std::string & login,
13              const std::string & password,
14              uint32_t ip);
15         ~USER();
16
17         const std::string & GetLogin() const { return login; }
18         uint32_t GetIP() const { return ip; }
19         uint32_t GetAliveTimeout() const { return aliveTimeout; }
20         uint32_t GetUserTimeout() const { return userTimeout; }
21         int GetPhase() const { return phase; }
22         uint32_t GetRnd() const { return rnd; }
23         int GetSocket() const { return sock; }
24         time_t GetPhaseChangeTime() const { return phaseChangeTime; }
25
26         BLOWFISH_CTX * GetCtx() { return &ctx; }
27
28         void SetPhase(int p) { phase = p; time(&phaseChangeTime); }
29         void SetRnd(uint32_t r) { rnd = r; }
30         uint32_t IncRnd() { return ++rnd; }
31         void SetAliveTimeout(uint32_t timeout) { aliveTimeout = timeout; }
32         void SetUserTimeout(uint32_t timeout) { userTimeout = timeout; }
33
34     private:
35         std::string login;
36         std::string password;
37         uint32_t ip;
38         uint32_t aliveTimeout;
39         uint32_t userTimeout;
40         int phase;
41         time_t phaseChangeTime;
42         uint32_t rnd;
43         int sock;
44         BLOWFISH_CTX ctx;
45 };
46
47 #endif