]> git.stg.codes - stg.git/blobdiff - projects/sgauthstress/proto.h
/etc/rscriptd replaced with /etc/stargazer in rscriptd.conf
[stg.git] / projects / sgauthstress / proto.h
index a63a4f90c3e6e7bf5df600363d5509fc62b9f6e2..543ae9e71b114c8ecb064c077364160eae9243f2 100644 (file)
@@ -6,6 +6,7 @@
 #include <poll.h>
 
 #include <string>
+#include <list>
 #include <vector>
 #include <map>
 
@@ -43,13 +44,14 @@ class PROTO {
         struct sockaddr_in serverAddr;
         int timeout;
 
-        std::vector<std::pair<uint32_t, USER> > users;
+        std::list<std::pair<uint32_t, USER> > users;
         std::vector<struct pollfd> pollFds;
 
         bool running;
         bool stopped;
 
         pthread_t tid;
+        pthread_mutex_t mutex;
 
         std::string errorStr;
 
@@ -58,9 +60,10 @@ class PROTO {
         static void * Runner(void * data);
 
         void Run();
+        void CheckTimeouts();
         bool RecvPacket();
         bool SendPacket(const void * buffer, size_t length, USER * user);
-        bool HandlePacket(const char * buffer, USER * user);
+        bool HandlePacket(const char * buffer, size_t length, USER * user);
 
         bool CONN_SYN_ACK_Proc(const void * buffer, USER * user);
         bool ALIVE_SYN_Proc(const void * buffer, USER * user);