diff options
| author | Teetime <TeetimeTW@yahoo.de> | 2012-02-18 16:06:38 +0100 |
|---|---|---|
| committer | Teetime <TeetimeTW@yahoo.de> | 2012-02-18 16:06:38 +0100 |
| commit | 6188a315289913b70e81fd1f5969171f507094f1 (patch) | |
| tree | ae60bf4cd7d63cf278809d1edde93a30442b2eff | |
| parent | 011d30b4ad291d00414ac8d1e851c2e8e0274f27 (diff) | |
| download | zcatch-6188a315289913b70e81fd1f5969171f507094f1.tar.gz zcatch-6188a315289913b70e81fd1f5969171f507094f1.zip | |
banmaster doesnt add same IPs now
| -rw-r--r-- | src/engine/server/server.cpp | 4 | ||||
| -rw-r--r-- | src/engine/shared/network_server.cpp | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 85d27a41..e1d09d9c 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -1619,8 +1619,10 @@ void CServer::ConAddBanmaster(IConsole::IResult *pResult, void *pUser) pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "succesfully added banmaster"); else if (Result == 1) pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "invalid address for banmaster / net lookup failed"); - else + else if(Result == 2) pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "too many banmasters"); + else + pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server/banmaster", "banmaster already exists"); } void CServer::ConBanmasters(IConsole::IResult *pResult, void *pUser) diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp index 72966896..b2336a2f 100644 --- a/src/engine/shared/network_server.cpp +++ b/src/engine/shared/network_server.cpp @@ -272,11 +272,18 @@ int CNetServer::BanmasterAdd(const char *pAddrStr) if(m_NumBanmasters >= MAX_BANMASTERS) return 2; - if(net_host_lookup(pAddrStr, &m_aBanmasters[m_NumBanmasters], NETTYPE_IPV4)) + NETADDR Addr; + if(net_host_lookup(pAddrStr, &Addr, NETTYPE_ALL)) return 1; - if(m_aBanmasters[m_NumBanmasters].port == 0) - m_aBanmasters[m_NumBanmasters].port = BANMASTER_PORT; + if(Addr.port == 0) + Addr.port = BANMASTER_PORT; + + for(int i = 0; i < m_NumBanmasters; i++) + if(mem_comp(&Addr, &m_aBanmasters[i], sizeof(NETADDR)) == 0) + return 3; + + m_aBanmasters[m_NumBanmasters] = Addr; m_NumBanmasters++; return 0; |