about summary refs log tree commit diff
path: root/src/mastersrv/mastersrv.cpp
diff options
context:
space:
mode:
authorm!nus <m1nus@online.de>2011-01-22 22:50:19 +0100
committeroy <Tom_Adams@web.de>2011-01-23 17:54:32 +0100
commit3eb1c64428a6eaf5314d1c437bb7a2bffb80019d (patch)
tree58fa542217269384dd8c08be8ee78499b88726f8 /src/mastersrv/mastersrv.cpp
parent05d274444a2d4ef1817e16de936a9f0707b237ae (diff)
downloadzcatch-3eb1c64428a6eaf5314d1c437bb7a2bffb80019d.tar.gz
zcatch-3eb1c64428a6eaf5314d1c437bb7a2bffb80019d.zip
Fixed ban adding in mastersrv (check for existing ban)
Diffstat (limited to 'src/mastersrv/mastersrv.cpp')
-rw-r--r--src/mastersrv/mastersrv.cpp57
1 files changed, 26 insertions, 31 deletions
diff --git a/src/mastersrv/mastersrv.cpp b/src/mastersrv/mastersrv.cpp
index bbe8a54b..10440e7d 100644
--- a/src/mastersrv/mastersrv.cpp
+++ b/src/mastersrv/mastersrv.cpp
@@ -254,9 +254,28 @@ void PurgeServers()
 	}
 }
 
+bool CheckBan(NETADDR Addr)
+{
+	for(int i = 0; i < m_NumBans; i++)
+	{
+		if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0)
+		{
+			return true;
+		}
+	}
+	Addr.port = 0;
+	for(int i = 0; i < m_NumBans; i++)
+	{
+		if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0)
+		{
+			return true;
+		}
+	}
+	return false;
+}
+
 void ConAddBan(IConsole::IResult *pResult, void *pUser)
 {
-	int i;
 	if(m_NumBans == MAX_BANS)
 	{
 		dbg_msg("mastersrv", "error: banlist is full");
@@ -265,19 +284,15 @@ void ConAddBan(IConsole::IResult *pResult, void *pUser)
 	
 	net_addr_from_str(&m_aBans[m_NumBans].m_Address, pResult->GetString(0));
 	
-	for(i = 0; i < m_NumBans; i++)
+	if(CheckBan(m_aBans[m_NumBans].m_Address))
 	{
-		if(net_addr_comp(&m_aBans[i].m_Address, &m_aBans[m_NumBans].m_Address) == 0)
-		{
-			dbg_msg("mastersrv", "duplicate ban: %d.%d.%d.%d:%d",
-				m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1],
-				m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3],
-				m_aBans[m_NumBans].m_Address.port);
-			return;
-		}
+		dbg_msg("mastersrv", "duplicate ban: %d.%d.%d.%d:%d",
+			m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1],
+			m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3],
+			m_aBans[m_NumBans].m_Address.port);
+		return;
 	}
 	
-	
 	dbg_msg("mastersrv", "ban added: %d.%d.%d.%d:%d",
 		m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1],
 		m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3],
@@ -291,26 +306,6 @@ void ReloadBans()
 	m_pConsole->ExecuteFile("master.cfg");
 }
 
-bool CheckBan(NETADDR Addr)
-{
-	for(int i = 0; i < m_NumBans; i++)
-	{
-		if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0)
-		{
-			return true;
-		}
-	}
-	Addr.port = 0;
-	for(int i = 0; i < m_NumBans; i++)
-	{
-		if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0)
-		{
-			return true;
-		}
-	}
-	return false;
-}
-
 int main(int argc, const char **argv) // ignore_convention
 {
 	int64 LastBuild = 0, LastBanReload = 0;