diff options
| author | Choupom <andycootlapin@hotmail.fr> | 2011-09-06 16:49:55 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-12-04 14:22:59 +0100 |
| commit | b2a825652d8588dfb7f1c793403ca05555b1d75f (patch) | |
| tree | bca6c4f30d0d2feb3ee5759c4ea932ea9fdd028a /src/engine/shared | |
| parent | 873c5a77bcf5331b07ae91510492fdd07c89509c (diff) | |
| download | zcatch-b2a825652d8588dfb7f1c793403ca05555b1d75f.tar.gz zcatch-b2a825652d8588dfb7f1c793403ca05555b1d75f.zip | |
added a command to unban all
Diffstat (limited to 'src/engine/shared')
| -rw-r--r-- | src/engine/shared/network.h | 1 | ||||
| -rw-r--r-- | src/engine/shared/network_server.cpp | 33 |
2 files changed, 24 insertions, 10 deletions
diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h index d10c03b6..a9ace4e3 100644 --- a/src/engine/shared/network.h +++ b/src/engine/shared/network.h @@ -310,6 +310,7 @@ public: // banning int BanAdd(NETADDR Addr, int Seconds, const char *pReason); int BanRemove(NETADDR Addr); + int BanRemoveAll(); int BanNum(); // caution, slow int BanGet(int Index, CBanInfo *pInfo); // caution, slow diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp index b100e1a2..b4986bf0 100644 --- a/src/engine/shared/network_server.cpp +++ b/src/engine/shared/network_server.cpp @@ -48,16 +48,7 @@ bool CNetServer::Open(NETADDR BindAddr, int MaxClients, int MaxClientsPerIP, int for(int i = 0; i < NET_MAX_CLIENTS; i++) m_aSlots[i].m_Connection.Init(m_Socket); - // setup all pointers for bans - for(int i = 1; i < NET_SERVER_MAXBANS-1; i++) - { - m_BanPool[i].m_pNext = &m_BanPool[i+1]; - m_BanPool[i].m_pPrev = &m_BanPool[i-1]; - } - - m_BanPool[0].m_pNext = &m_BanPool[1]; - m_BanPool[NET_SERVER_MAXBANS-1].m_pPrev = &m_BanPool[NET_SERVER_MAXBANS-2]; - m_BanPool_FirstFree = &m_BanPool[0]; + BanRemoveAll(); return true; } @@ -146,6 +137,28 @@ int CNetServer::BanRemove(NETADDR Addr) return -1; } +int CNetServer::BanRemoveAll() +{ + // clear bans memory + mem_zero(m_aBans, sizeof(m_aBans)); + mem_zero(m_BanPool, sizeof(m_BanPool)); + m_BanPool_FirstFree = 0; + m_BanPool_FirstUsed = 0; + + // setup all pointers for bans + for(int i = 1; i < NET_SERVER_MAXBANS-1; i++) + { + m_BanPool[i].m_pNext = &m_BanPool[i+1]; + m_BanPool[i].m_pPrev = &m_BanPool[i-1]; + } + + m_BanPool[0].m_pNext = &m_BanPool[1]; + m_BanPool[NET_SERVER_MAXBANS-1].m_pPrev = &m_BanPool[NET_SERVER_MAXBANS-2]; + m_BanPool_FirstFree = &m_BanPool[0]; + + return 0; +} + int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason) { int IpHash = (Addr.ip[0]+Addr.ip[1]+Addr.ip[2]+Addr.ip[3]+Addr.ip[4]+Addr.ip[5]+Addr.ip[6]+Addr.ip[7]+ |