about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authorTeetime <TeetimeTW@yahoo.de>2012-02-19 13:40:35 +0100
committerTeetime <TeetimeTW@yahoo.de>2012-02-19 13:40:35 +0100
commit5c855545dd72bbfc24e390d5327b768ecfb8d212 (patch)
treeecdfbac1334815beb2ee68b0f00ddf1a3ff15718 /src/engine/server
parentcf4189d4d2ed5978769c9c3e45ae9346d4a796b5 (diff)
downloadzcatch-5c855545dd72bbfc24e390d5327b768ecfb8d212.tar.gz
zcatch-5c855545dd72bbfc24e390d5327b768ecfb8d212.zip
fix that server sends bans correctly to banmasters
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/server.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index e1d09d9c..c01095f9 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -287,17 +287,22 @@ void CServerBan::ConBanExt(IConsole::IResult *pResult, void *pUser)
 		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), MAX_NAME_LENGTH);
-		P.AddString(aIP, sizeof(aIP));
-		P.AddString(pReason, str_length(pReason));
-
-		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.SendToBanmasters(&Packet);
+		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.SendToBanmasters(&Packet);
+			pThis->Console()->Print(IConsole::OUTPUT_LEVEL_DEBUG, "banmaster", "Reported ban to banmasters");
+		}
 	}
 
 	if(StrAllnum(pStr))