diff options
Diffstat (limited to 'src/engine/server/server.cpp')
| -rw-r--r-- | src/engine/server/server.cpp | 13 |
1 files changed, 13 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"); |