]> git.stg.codes - stg.git/blobdiff - projects/sgauthstress/user.h
Help book chapter 2 complete
[stg.git] / projects / sgauthstress / user.h
index 150bf242c88bee92cc45ac633cb09bd1f0baaed7..1aa6f9e38b68f2f86928e84759a753a25158144d 100644 (file)
@@ -5,28 +5,34 @@
 #include <string>
 
 #include "stg/os_int.h"
+#include "stg/blowfish.h"
 
 class USER {
     public:
         USER(const std::string & login,
              const std::string & password,
              uint32_t ip);
+        USER(const USER & rvalue);
         ~USER();
 
+        const USER & operator=(const USER & rvalue);
+
+        bool InitNetwork();
+
         const std::string & GetLogin() const { return login; }
         uint32_t GetIP() const { return ip; }
         uint32_t GetAliveTimeout() const { return aliveTimeout; }
         uint32_t GetUserTimeout() const { return userTimeout; }
         int GetPhase() const { return phase; }
-        int GetRnd() const { return rnd; }
+        uint32_t GetRnd() const { return rnd; }
         int GetSocket() const { return sock; }
         time_t GetPhaseChangeTime() const { return phaseChangeTime; }
 
         BLOWFISH_CTX * GetCtx() { return &ctx; }
 
         void SetPhase(int p) { phase = p; time(&phaseChangeTime); }
-        void SetRnd(int r) { rnd = r; }
-        int IncRnd() { return ++rnd; }
+        void SetRnd(uint32_t r) { rnd = r; }
+        uint32_t IncRnd() { return ++rnd; }
         void SetAliveTimeout(uint32_t timeout) { aliveTimeout = timeout; }
         void SetUserTimeout(uint32_t timeout) { userTimeout = timeout; }
 
@@ -38,7 +44,7 @@ class USER {
         uint32_t userTimeout;
         int phase;
         time_t phaseChangeTime;
-        int rnd;
+        uint32_t rnd;
         int sock;
         BLOWFISH_CTX ctx;
 };