about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorTeetime <TeetimeTW@yahoo.de>2013-01-05 06:46:44 +0100
committerTeetime <TeetimeTW@yahoo.de>2013-01-05 06:46:44 +0100
commit198122516365d17a489cc86f205d44cc0008f99d (patch)
tree056e4c4ef25e691b723d87104b93ffb50704f297 /src/engine
parentff8f832ba0f48f40274a761526e79d5453d63806 (diff)
downloadzcatch-198122516365d17a489cc86f205d44cc0008f99d.tar.gz
zcatch-198122516365d17a489cc86f205d44cc0008f99d.zip
Removed banmaster
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/server/server.cpp105
-rw-r--r--src/engine/server/server.h4
-rw-r--r--src/engine/shared/network.h25
-rw-r--r--src/engine/shared/network_server.cpp96
4 files changed, 2 insertions, 228 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index 4a03be16..577c040f 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -27,8 +27,6 @@
 
 #include <mastersrv/mastersrv.h>
 
-#include <banmaster/banmaster.h>
-
 #include "register.h"
 #include "server.h"
 
@@ -38,8 +36,6 @@
 	#include <windows.h>
 #endif
 
-static const char SERVER_BANMASTERFILE[] = "banmasters.cfg";
-
 static const char *StrUTF8Ltrim(const char *pStr)
 {
 	while(*pStr)
@@ -281,30 +277,6 @@ void CServerBan::ConBanExt(IConsole::IResult *pResult, void *pUser)
 				}
 	}
 
-	if(g_Config.m_SvGlobalBantime && CID >= 0 && CID < MAX_CLIENTS && pThis->Server()->m_aClients[CID].m_State == CServer::CClient::STATE_INGAME)
-	{
-		char aIP[NETADDR_MAXSTRSIZE];
-		net_addr_str(pThis->Server()->m_NetServer.ClientAddr(CID), aIP, sizeof(aIP), 0);
-
-		CPacker P;
-		P.Reset();
-		P.AddRaw(BANMASTER_IPREPORT, sizeof(BANMASTER_IPREPORT));
-		P.AddString(pThis->Server()->ClientName(CID), -1);
-		P.AddString(aIP, -1);
-		P.AddString(pReason, -1);
-
-		if(!P.Error())
-		{
-			CNetChunk Packet;
-			Packet.m_ClientID = -1;
-			Packet.m_Flags = NETSENDFLAG_CONNLESS;
-			Packet.m_pData = P.Data();
-			Packet.m_DataSize = P.Size();
-			pThis->Server()->m_NetServer.m_Banmaster.SendToAll(&Packet);
-			pThis->Console()->Print(IConsole::OUTPUT_LEVEL_DEBUG, "banmaster", "Reported ban to banmasters");
-		}
-	}
-
 	if(StrAllnum(pStr))
 	{
 		int ClientID = str_toint(pStr);
@@ -1221,36 +1193,6 @@ void CServer::PumpNetwork()
 				{
 					SendServerInfo(&Packet.m_Address, ((unsigned char *)Packet.m_pData)[sizeof(SERVERBROWSE_GETINFO)]);
 				}
-				else if(Packet.m_DataSize >= sizeof(BANMASTER_IPBAN) &&
-				  mem_comp(Packet.m_pData, BANMASTER_IPBAN, sizeof(BANMASTER_IPBAN)) == 0)
-				{
-					if(!g_Config.m_SvGlobalBantime)
-						return;
-
-					//Unpack packet
-					CUnpacker Up;
-					const char *pIP, *pReason, *pToken;
-					Up.Reset((unsigned char*)Packet.m_pData + sizeof(BANMASTER_IPBAN), Packet.m_DataSize - sizeof(BANMASTER_IPBAN));
-					pIP = Up.GetString(CUnpacker::SANITIZE_CC|CUnpacker::SKIP_START_WHITESPACES);
-					pReason = Up.GetString(CUnpacker::SANITIZE_CC|CUnpacker::SKIP_START_WHITESPACES);
-					pToken = Up.GetString(CUnpacker::SANITIZE_CC);
-
-					//check if it's a valid packet
-					if(Up.Error() || m_NetServer.m_Banmaster.CheckValidity(&Packet.m_Address, pToken) == -1)
-						return;
-
-					NETADDR Addr;
-					if(net_addr_from_str(&Addr, pIP))
-					{
-						Console()->Print(IConsole::OUTPUT_LEVEL_DEBUG, "globalbans", "dropped weird message from banmaster");
-						return;
-					}
-
-					m_ServerBan.BanAddr(&Addr, g_Config.m_SvGlobalBantime * 60, pReason);
-					char aBuf[256];
-					str_format(aBuf, sizeof(aBuf), "added ban, ip=%s, reason='%s'", pIP, pReason);
-					Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "globalbans", aBuf);
-				}
 			}
 		}
 		else
@@ -1367,8 +1309,6 @@ int CServer::Run()
 	m_ServerBan.Init(Console(), Storage(), this);
 	m_Econ.Init(Console(), &m_ServerBan);
 
-	Console()->ExecuteFile(SERVER_BANMASTERFILE);
-
 	char aBuf[256];
 	str_format(aBuf, sizeof(aBuf), "server name is '%s'", g_Config.m_SvName);
 	Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aBuf);
@@ -1611,47 +1551,6 @@ void CServer::ConMapReload(IConsole::IResult *pResult, void *pUser)
 	((CServer *)pUser)->m_MapReload = 1;
 }
 
-void CServer::ConAddBanmaster(IConsole::IResult *pResult, void *pUser)
-{
-	CServer *pServer = (CServer *)pUser;
-	
-	int Result = pServer->m_NetServer.m_Banmaster.Add(pResult->GetString(0));
-	
-	if(Result == 0)
-		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "succesfully added banmaster");
-	else if(Result == 1)
-		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "invalid address for banmaster / net lookup failed");
-	else if(Result == 2)
-		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "too many banmasters");
-	else
-		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "banmaster already exists");
-}
-
-void CServer::ConBanmasters(IConsole::IResult *pResult, void *pUser)
-{
-	CServer *pServer = (CServer *)pUser;
-	int NumBanmasters = pServer->m_NetServer.m_Banmaster.Num();
-	
-	char aBuf[128];
-	char aIpString[64];
-	
-	for(int i = 0; i < NumBanmasters; i++)
-	{
-		NETADDR *pBanmaster = pServer->m_NetServer.m_Banmaster.Get(i);
-		net_addr_str(pBanmaster, aIpString, sizeof(aIpString), 0);
-		str_format(aBuf, sizeof(aBuf), "%d: %s", i, aIpString);
-		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", aBuf);
-	}
-}
-
-void CServer::ConClearBanmasters(IConsole::IResult *pResult, void *pUser)
-{
-	CServer *pServer = (CServer *)pUser;
-	
-	pServer->m_NetServer.m_Banmaster.Clear();
-	pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "cleared banmaster list");
-}
-
 void CServer::ConLogout(IConsole::IResult *pResult, void *pUser)
 {
 	CServer *pServer = (CServer *)pUser;
@@ -1738,10 +1637,6 @@ void CServer::RegisterCommands()
 	Console()->Register("record", "?s", CFGFLAG_SERVER|CFGFLAG_STORE, ConRecord, this, "Record to a file");
 	Console()->Register("stoprecord", "", CFGFLAG_SERVER, ConStopRecord, this, "Stop recording");
 
-	Console()->Register("add_banmaster", "s", CFGFLAG_SERVER, ConAddBanmaster, this, "");
-	Console()->Register("banmasters", "", CFGFLAG_SERVER, ConBanmasters, this, "");
-	Console()->Register("clear_banmasters",	"", CFGFLAG_SERVER, ConClearBanmasters, this, "");
-
 	Console()->Register("reload", "", CFGFLAG_SERVER, ConMapReload, this, "");
 
 	Console()->Chain("sv_name", ConchainSpecialInfoupdate, this);
diff --git a/src/engine/server/server.h b/src/engine/server/server.h
index 9f62ab37..27991746 100644
--- a/src/engine/server/server.h
+++ b/src/engine/server/server.h
@@ -230,10 +230,6 @@ public:
 	static void ConchainModCommandUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
 	static void ConchainConsoleOutputLevelUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
 
-	static void ConAddBanmaster(IConsole::IResult *pResult, void *pUser);
-	static void ConBanmasters(IConsole::IResult *pResult, void *pUser);
-	static void ConClearBanmasters(IConsole::IResult *pResult, void *pUser);
-
 	void RegisterCommands();
 
 
diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h
index b607b4d4..dd43389e 100644
--- a/src/engine/shared/network.h
+++ b/src/engine/shared/network.h
@@ -261,7 +261,6 @@ class CNetServer
 	CNetRecvUnpacker m_RecvUnpacker;
 
 public:
-	CNetServer();
 	int SetCallbacks(NETFUNC_NEWCLIENT pfnNewClient, NETFUNC_DELCLIENT pfnDelClient, void *pUser);
 
 	//
@@ -285,30 +284,6 @@ public:
 
 	//
 	void SetMaxClientsPerIP(int Max);
-
-	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
diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp
index f1190223..b693b667 100644
--- a/src/engine/shared/network_server.cpp
+++ b/src/engine/shared/network_server.cpp
@@ -1,26 +1,17 @@
 /* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
 /* If you are missing that file, acquire a complete release at teeworlds.com.                */
 #include <base/system.h>
-#include <banmaster/banmaster.h>
 
 #include <engine/console.h>
-#include <engine/shared/packer.h>
 
 #include "netban.h"
 #include "network.h"
 
-CNetServer::CNetServer()
-{
-	mem_zero(this, sizeof(*this));
-	init_rand();
-	m_Banmaster.m_pNet = this;
-	m_Banmaster.GenerateToken();
-}
 
 bool CNetServer::Open(NETADDR BindAddr, CNetBan *pNetBan, int MaxClients, int MaxClientsPerIP, int Flags)
 {
 	// zero out the whole structure
-	//mem_zero(this, sizeof(*this));
+	mem_zero(this, sizeof(*this));
 
 	// open socket
 	m_Socket = net_udp_create(BindAddr);
@@ -149,21 +140,6 @@ int CNetServer::Recv(CNetChunk *pChunk)
 					// client that wants to connect
 					if(!Found)
 					{
-						char aIP[NETADDR_MAXSTRSIZE];
-						net_addr_str(&Addr, aIP, sizeof(aIP), 0);
-						CPacker P;
-						P.Reset();
-						P.AddRaw(BANMASTER_IPCHECK, sizeof(BANMASTER_IPCHECK));
-						P.AddString(aIP, NETADDR_MAXSTRSIZE);
-						P.AddString(m_Banmaster.m_aBanmasterToken, CBanmaster::MAX_TOKEN_LENGTH);
-
-						CNetChunk Packet;
-						Packet.m_ClientID = -1;
-						Packet.m_Flags = NETSENDFLAG_CONNLESS;
-						Packet.m_DataSize = P.Size();
-						Packet.m_pData = P.Data();
-
-						m_Banmaster.SendToAll(&Packet);
 
 						// only allow a specific number of players with the same ip
 						NETADDR ThisAddr = Addr, OtherAddr;
@@ -196,7 +172,7 @@ int CNetServer::Recv(CNetChunk *pChunk)
 								m_aSlots[i].m_Connection.Feed(&m_RecvUnpacker.m_Data, &Addr);
 								if(m_pfnNewClient)
 									m_pfnNewClient(i, m_UserPtr);
-								
+
 								break;
 							}
 						}
@@ -274,71 +250,3 @@ void CNetServer::SetMaxClientsPerIP(int Max)
 
 	m_MaxClientsPerIP = Max;
 }
-
-int CNetServer::CBanmaster::Add(const char *pAddrStr)
-{
-	if(m_NumBanmasters >= MAX_BANMASTERS)
-		return 2;
-
-	NETADDR Addr;
-	if(net_host_lookup(pAddrStr, &Addr, NETTYPE_ALL))
-		return 1;
-
-	if(Addr.port == 0)
-		Addr.port = BANMASTER_PORT;
-
-	for(int i = 0; i < m_NumBanmasters; i++)
-		if(mem_comp(&Addr, &m_aBanmasters[i], sizeof(NETADDR)) == 0)
-			return 3;
-
-	m_aBanmasters[m_NumBanmasters] = Addr;
-	m_NumBanmasters++;
-	return 0;
-}
-
-int CNetServer::CBanmaster::Num() const
-{
-	return m_NumBanmasters;
-}
-
-NETADDR *CNetServer::CBanmaster::Get(int Index)
-{
-	if(Index < 0 || Index >= m_NumBanmasters)
-		return 0;
-	
-	return &m_aBanmasters[Index];
-}
-
-int CNetServer::CBanmaster::CheckValidity(NETADDR *pAddr, const char* pToken)
-{
-	if(str_comp(m_aBanmasterToken, pToken) == 0)
-		for(int i = 0; i < m_NumBanmasters; i++)
-			if(net_addr_comp(&m_aBanmasters[i], pAddr) == 0)
-				return i;
-
-	return -1;
-}
-
-void CNetServer::CBanmaster::Clear()
-{
-	m_NumBanmasters = 0;
-}
-
-void CNetServer::CBanmaster::SendToAll(CNetChunk *pP)
-{
-	for(int i = 0; i < m_NumBanmasters; i++)
-	{
-		pP->m_Address = m_aBanmasters[i];
-		m_pNet->Send(pP);
-	}
-}
-
-void CNetServer::CBanmaster::GenerateToken()
-{
-	for(int i = 0; i < MAX_TOKEN_LENGTH-1; i++)
-	{
-		// 32 - 128
-		m_aBanmasterToken[i] = irand() % 97 + 32;
-	}
-	m_aBanmasterToken[MAX_TOKEN_LENGTH-1] = 0;
-}