about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorheinrich5991 <heinrich5991@gmail.com>2011-02-13 12:36:55 +0100
committeroy <Tom_Adams@web.de>2011-02-13 13:31:58 +0100
commit825eca4bab1ea0dbdd401ed96d390390ca108638 (patch)
tree60e1729d34d4901f08a61b6182e4494e59d7bc95 /src/engine
parent3c7adc6a7fe8573341474d367c164ebf34005c1f (diff)
downloadzcatch-825eca4bab1ea0dbdd401ed96d390390ca108638.tar.gz
zcatch-825eca4bab1ea0dbdd401ed96d390390ca108638.zip
added saving of the banreason.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/shared/network.h1
-rw-r--r--src/engine/shared/network_server.cpp17
2 files changed, 13 insertions, 5 deletions
diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h
index 972d0da8..67175db9 100644
--- a/src/engine/shared/network.h
+++ b/src/engine/shared/network.h
@@ -219,6 +219,7 @@ public:
 	{
 		NETADDR m_Addr;
 		int m_Expires;
+		char m_Reason[128];
 	};
 	
 private:
diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp
index fabc865b..3b5ef317 100644
--- a/src/engine/shared/network_server.cpp
+++ b/src/engine/shared/network_server.cpp
@@ -173,6 +173,7 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 	// setup the ban info
 	pBan->m_Info.m_Expires = Stamp;
 	pBan->m_Info.m_Addr = Addr;
+	str_copy(pBan->m_Info.m_Reason, pReason, sizeof(pBan->m_Info.m_Reason));
 	
 	// add it to the ban hash
 	MACRO_LIST_LINK_FIRST(pBan, m_aBans[IpHash], m_pHashPrev, m_pHashNext);
@@ -214,8 +215,14 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
 		char Buf[128];
 		NETADDR BanAddr;
 		
-		if(Seconds)
-			str_format(Buf, sizeof(Buf), "You have been banned for %d minutes (%s)", Seconds/60, pReason);
+		int Mins = (Seconds + 59) / 60;
+		if(Mins)
+		{
+			if(Mins == 1)
+				str_format(Buf, sizeof(Buf), "You have been banned for 1 minute (%s)", pReason);
+			else
+				str_format(Buf, sizeof(Buf), "You have been banned for %d minutes (%s)", Mins, pReason);
+		}
 		else
 			str_format(Buf, sizeof(Buf), "You have been banned for life (%s)", pReason);
 		
@@ -297,12 +304,12 @@ int CNetServer::Recv(CNetChunk *pChunk)
 				{
 					int Mins = ((pBan->m_Info.m_Expires - Now)+59)/60;
 					if(Mins == 1)
-						str_format(BanStr, sizeof(BanStr), "Banned for 1 minute");
+						str_format(BanStr, sizeof(BanStr), "Banned for 1 minute (%s)", pBan->m_Info.m_Reason);
 					else
-						str_format(BanStr, sizeof(BanStr), "Banned for %d minutes", Mins);
+						str_format(BanStr, sizeof(BanStr), "Banned for %d minutes (%s)", Mins, pBan->m_Info.m_Reason);
 				}
 				else
-					str_format(BanStr, sizeof(BanStr), "Banned for life");
+					str_format(BanStr, sizeof(BanStr), "Banned for life (%s)", pBan->m_Info.m_Reason);
 				CNetBase::SendControlMsg(m_Socket, &Addr, 0, NET_CTRLMSG_CLOSE, BanStr, str_length(BanStr)+1);
 				continue;
 			}