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 /src/engine/shared/network_server.cpp | |
| parent | 011d30b4ad291d00414ac8d1e851c2e8e0274f27 (diff) | |
| download | zcatch-6188a315289913b70e81fd1f5969171f507094f1.tar.gz zcatch-6188a315289913b70e81fd1f5969171f507094f1.zip | |
banmaster doesnt add same IPs now
Diffstat (limited to 'src/engine/shared/network_server.cpp')
| -rw-r--r-- | src/engine/shared/network_server.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
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; |