about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authorChoupom <andycootlapin@hotmail.fr>2011-09-06 16:49:55 +0200
committeroy <Tom_Adams@web.de>2011-12-04 14:22:59 +0100
commitb2a825652d8588dfb7f1c793403ca05555b1d75f (patch)
treebca6c4f30d0d2feb3ee5759c4ea932ea9fdd028a /src/engine/server
parent873c5a77bcf5331b07ae91510492fdd07c89509c (diff)
downloadzcatch-b2a825652d8588dfb7f1c793403ca05555b1d75f.tar.gz
zcatch-b2a825652d8588dfb7f1c793403ca05555b1d75f.zip
added a command to unban all
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/server.cpp13
-rw-r--r--src/engine/server/server.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp
index 93e96db9..d253d3fc 100644
--- a/src/engine/server/server.cpp
+++ b/src/engine/server/server.cpp
@@ -1061,6 +1061,11 @@ int CServer::BanRemove(NETADDR Addr)
 	return m_NetServer.BanRemove(Addr);
 }
 
+int CServer::BanRemoveAll()
+{
+	return m_NetServer.BanRemoveAll();
+}
+
 
 void CServer::PumpNetwork()
 {
@@ -1463,6 +1468,13 @@ void CServer::ConUnban(IConsole::IResult *pResult, void *pUser)
 		pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", "invalid network address");
 }
 
+void CServer::ConUnbanAll(IConsole::IResult *pResult, void *pUser)
+{
+	CServer *pServer = (CServer *)pUser;
+	if(!pServer->BanRemoveAll())
+			pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", "unbanned all");
+}
+
 void CServer::ConBans(IConsole::IResult *pResult, void *pUser)
 {
 	unsigned Now = time_timestamp();
@@ -1627,6 +1639,7 @@ void CServer::RegisterCommands()
 	Console()->Register("kick", "i?r", CFGFLAG_SERVER, ConKick, this, "Kick player with specified id for any reason");
 	Console()->Register("ban", "s?ir", CFGFLAG_SERVER|CFGFLAG_STORE, ConBan, this, "Ban player with ip/id for x minutes for any reason");
 	Console()->Register("unban", "s", CFGFLAG_SERVER|CFGFLAG_STORE, ConUnban, this, "Unban ip");
+	Console()->Register("unban_all", "", CFGFLAG_SERVER|CFGFLAG_STORE, ConUnbanAll, this, "Clear all bans");
 	Console()->Register("bans", "", CFGFLAG_SERVER|CFGFLAG_STORE, ConBans, this, "Show banlist");
 	Console()->Register("status", "", CFGFLAG_SERVER, ConStatus, this, "List players");
 	Console()->Register("shutdown", "", CFGFLAG_SERVER, ConShutdown, this, "Shut down");
diff --git a/src/engine/server/server.h b/src/engine/server/server.h
index d8fdd8fa..916eb37d 100644
--- a/src/engine/server/server.h
+++ b/src/engine/server/server.h
@@ -188,6 +188,7 @@ public:
 
 	int BanAdd(NETADDR Addr, int Seconds, const char *pReason);
 	int BanRemove(NETADDR Addr);
+	int BanRemoveAll();
 
 	void PumpNetwork();
 
@@ -200,6 +201,7 @@ public:
 	static void ConKick(IConsole::IResult *pResult, void *pUser);
 	static void ConBan(IConsole::IResult *pResult, void *pUser);
 	static void ConUnban(IConsole::IResult *pResult, void *pUser);
+	static void ConUnbanAll(IConsole::IResult *pResult, void *pUser);
 	static void ConBans(IConsole::IResult *pResult, void *pUser);
  	static void ConStatus(IConsole::IResult *pResult, void *pUser);
 	static void ConShutdown(IConsole::IResult *pResult, void *pUser);