about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-06-07 14:12:06 +0200
committeroy <Tom_Adams@web.de>2010-06-07 14:12:06 +0200
commit1c041c44a43905d31fc14a8b209e13f8d1f42e33 (patch)
tree580e437ba5051f5866c6030eff868fc0d4082010 /src
parent2104835d77c458409dec549f8badf8bc536c43d6 (diff)
downloadzcatch-1c041c44a43905d31fc14a8b209e13f8d1f42e33.tar.gz
zcatch-1c041c44a43905d31fc14a8b209e13f8d1f42e33.zip
made unban command work with the banlist index. Closes #102
Diffstat (limited to 'src')
-rw-r--r--src/engine/server/server.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index 69102a75..620599c8 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -1210,10 +1210,20 @@ void CServer::ConBan(IConsole::IResult *pResult, void *pUser)
 void CServer::ConUnban(IConsole::IResult *pResult, void *pUser)
 {
 	NETADDR Addr;
+	CServer *pServer = (CServer *)pUser;
 	const char *pStr = pResult->GetString(0);
 	
 	if(net_addr_from_str(&Addr, pStr) == 0)
-		((CServer *)pUser)->BanRemove(Addr);
+		pServer->BanRemove(Addr);
+	else if(StrAllnum(pStr))
+	{
+		int BanIndex = str_toint(pStr);
+		CNetServer::CBanInfo Info;
+		if(BanIndex < 0 || !pServer->m_NetServer.BanGet(BanIndex, &Info))
+			dbg_msg("server", "invalid ban index");
+		else
+			pServer->BanRemove(Info.m_Addr);
+	}
 	else
 		dbg_msg("server", "invalid network address");
 }