about summary refs log tree commit diff
path: root/src/engine/shared/network.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/shared/network.h')
-rw-r--r--src/engine/shared/network.h48
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