diff options
| author | eeeee <eeeee@qwe123.info> | 2018-08-18 17:33:58 -0700 |
|---|---|---|
| committer | Learath <learath2@gmail.com> | 2018-08-20 15:33:34 +0300 |
| commit | 2cd0223a8df54ae1c8715915a331dfc56a5a29d3 (patch) | |
| tree | a5c3789c4aa2c93255d824b5eb343172d3642eac /src/engine/server/server.cpp | |
| parent | 3f3abebebf20e8901376b929e2afcc6bdb404a3b (diff) | |
| download | zcatch-2cd0223a8df54ae1c8715915a331dfc56a5a29d3.tar.gz zcatch-2cd0223a8df54ae1c8715915a331dfc56a5a29d3.zip | |
Port antispoof
Diffstat (limited to 'src/engine/server/server.cpp')
| -rw-r--r-- | src/engine/server/server.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 6bcffae3..37c6f430 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -797,6 +797,22 @@ void CServer::DoSnapshot() GameServer()->OnPostSnap(); } +int CServer::NewClientNoAuthCallback(int ClientID, void *pUser) +{ + CServer *pThis = (CServer *)pUser; + pThis->m_aClients[ClientID].m_State = CClient::STATE_CONNECTING; + pThis->m_aClients[ClientID].m_aName[0] = 0; + pThis->m_aClients[ClientID].m_aClan[0] = 0; + pThis->m_aClients[ClientID].m_Country = -1; + pThis->m_aClients[ClientID].m_Authed = AUTHED_NO; + pThis->m_aClients[ClientID].m_AuthTries = 0; + pThis->m_aClients[ClientID].m_pRconCmdToSend = 0; + pThis->m_aClients[ClientID].Reset(); + + pThis->SendMap(ClientID); + + return 0; +} int CServer::NewClientCallback(int ClientID, void *pUser) { @@ -1454,7 +1470,7 @@ int CServer::Run() return -1; } - m_NetServer.SetCallbacks(NewClientCallback, DelClientCallback, this); + m_NetServer.SetCallbacks(NewClientCallback, NewClientNoAuthCallback, DelClientCallback, this); m_Econ.Init(Console(), &m_ServerBan); @@ -2261,6 +2277,12 @@ int main(int argc, const char **argv) // ignore_convention } #endif + if(secure_random_init() != 0) + { + dbg_msg("secure", "could not initialize secure RNG"); + return -1; + } + CServer *pServer = CreateServer(); IKernel *pKernel = IKernel::Create(); |