diff options
Diffstat (limited to 'src/engine/shared/network.h')
| -rw-r--r-- | src/engine/shared/network.h | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h index 4983b48f..b607b4d4 100644 --- a/src/engine/shared/network.h +++ b/src/engine/shared/network.h @@ -242,20 +242,6 @@ public: // server side class CNetServer { -public: - enum - { - MAX_BANMASTERS=16 - }; - - struct CBanInfo - { - NETADDR m_Addr; - int m_Expires; - char m_Reason[128]; - }; - -private: struct CSlot { public: @@ -268,9 +254,6 @@ private: int m_MaxClients; int m_MaxClientsPerIP; - NETADDR m_aBanmasters[MAX_BANMASTERS]; - int m_NumBanmasters; - NETFUNC_NEWCLIENT m_pfnNewClient; NETFUNC_DELCLIENT m_pfnDelClient; void *m_UserPtr; @@ -278,6 +261,7 @@ private: CNetRecvUnpacker m_RecvUnpacker; public: + CNetServer(); int SetCallbacks(NETFUNC_NEWCLIENT pfnNewClient, NETFUNC_DELCLIENT pfnDelClient, void *pUser); // @@ -302,13 +286,29 @@ public: // void SetMaxClientsPerIP(int Max); - // - int BanmasterAdd(const char *pAddrStr); - int BanmasterNum() const; - NETADDR* BanmasterGet(int Index); - int BanmasterCheck(NETADDR *pAddr); - void BanmastersClear(); - void SendToBanmasters(CNetChunk *pP); + class CBanmaster + { + public: + enum + { + MAX_BANMASTERS = 16, + MAX_TOKEN_LENGTH = 16, + }; + + CNetServer *m_pNet; + NETADDR m_aBanmasters[MAX_BANMASTERS]; + char m_aBanmasterToken[MAX_TOKEN_LENGTH]; + int m_NumBanmasters; + + int Add(const char *pAddrStr); + int Num() const; + NETADDR* Get(int Index); + int CheckValidity(NETADDR *pAddr, const char* pToken); + void Clear(); + void SendToAll(CNetChunk *pP); + void GenerateToken(); + }; + CBanmaster m_Banmaster; }; class CNetConsole |