diff options
| author | m!nus <m1nus@online.de> | 2011-01-22 22:50:19 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-01-23 17:54:32 +0100 |
| commit | 3eb1c64428a6eaf5314d1c437bb7a2bffb80019d (patch) | |
| tree | 58fa542217269384dd8c08be8ee78499b88726f8 /src | |
| parent | 05d274444a2d4ef1817e16de936a9f0707b237ae (diff) | |
| download | zcatch-3eb1c64428a6eaf5314d1c437bb7a2bffb80019d.tar.gz zcatch-3eb1c64428a6eaf5314d1c437bb7a2bffb80019d.zip | |
Fixed ban adding in mastersrv (check for existing ban)
Diffstat (limited to 'src')
| -rw-r--r-- | src/mastersrv/mastersrv.cpp | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/src/mastersrv/mastersrv.cpp b/src/mastersrv/mastersrv.cpp index bbe8a54b..10440e7d 100644 --- a/src/mastersrv/mastersrv.cpp +++ b/src/mastersrv/mastersrv.cpp @@ -254,9 +254,28 @@ void PurgeServers() } } +bool CheckBan(NETADDR Addr) +{ + for(int i = 0; i < m_NumBans; i++) + { + if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0) + { + return true; + } + } + Addr.port = 0; + for(int i = 0; i < m_NumBans; i++) + { + if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0) + { + return true; + } + } + return false; +} + void ConAddBan(IConsole::IResult *pResult, void *pUser) { - int i; if(m_NumBans == MAX_BANS) { dbg_msg("mastersrv", "error: banlist is full"); @@ -265,19 +284,15 @@ void ConAddBan(IConsole::IResult *pResult, void *pUser) net_addr_from_str(&m_aBans[m_NumBans].m_Address, pResult->GetString(0)); - for(i = 0; i < m_NumBans; i++) + if(CheckBan(m_aBans[m_NumBans].m_Address)) { - if(net_addr_comp(&m_aBans[i].m_Address, &m_aBans[m_NumBans].m_Address) == 0) - { - dbg_msg("mastersrv", "duplicate ban: %d.%d.%d.%d:%d", - m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1], - m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3], - m_aBans[m_NumBans].m_Address.port); - return; - } + dbg_msg("mastersrv", "duplicate ban: %d.%d.%d.%d:%d", + m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1], + m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3], + m_aBans[m_NumBans].m_Address.port); + return; } - dbg_msg("mastersrv", "ban added: %d.%d.%d.%d:%d", m_aBans[m_NumBans].m_Address.ip[0], m_aBans[m_NumBans].m_Address.ip[1], m_aBans[m_NumBans].m_Address.ip[2], m_aBans[m_NumBans].m_Address.ip[3], @@ -291,26 +306,6 @@ void ReloadBans() m_pConsole->ExecuteFile("master.cfg"); } -bool CheckBan(NETADDR Addr) -{ - for(int i = 0; i < m_NumBans; i++) - { - if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0) - { - return true; - } - } - Addr.port = 0; - for(int i = 0; i < m_NumBans; i++) - { - if(net_addr_comp(&m_aBans[i].m_Address, &Addr) == 0) - { - return true; - } - } - return false; -} - int main(int argc, const char **argv) // ignore_convention { int64 LastBuild = 0, LastBanReload = 0; |