| 4599 | } |
| 4600 | |
| 4601 | bool CServer::SetTimedOut(int ClientId, int OrigId) |
| 4602 | { |
| 4603 | if(!m_NetServer.HasErrored(ClientId)) |
| 4604 | { |
| 4605 | return false; |
| 4606 | } |
| 4607 | |
| 4608 | // The login was on the current conn, logout should also be on the current conn |
| 4609 | if(IsRconAuthed(OrigId)) |
| 4610 | { |
| 4611 | LogoutClient(OrigId, "Timeout Protection"); |
| 4612 | } |
| 4613 | |
| 4614 | m_NetServer.ResumeOldConnection(ClientId, OrigId); |
| 4615 | |
| 4616 | m_aClients[ClientId].m_Sixup = m_aClients[OrigId].m_Sixup; |
| 4617 | |
| 4618 | DelClientCallback(OrigId, "Timeout Protection used", this); |
| 4619 | m_aClients[ClientId].m_AuthKey = -1; |
| 4620 | m_aClients[ClientId].m_Flags = m_aClients[OrigId].m_Flags; |
| 4621 | m_aClients[ClientId].m_DDNetVersion = m_aClients[OrigId].m_DDNetVersion; |
| 4622 | m_aClients[ClientId].m_GotDDNetVersionPacket = m_aClients[OrigId].m_GotDDNetVersionPacket; |
| 4623 | m_aClients[ClientId].m_DDNetVersionSettled = m_aClients[OrigId].m_DDNetVersionSettled; |
| 4624 | return true; |
| 4625 | } |
| 4626 | |
| 4627 | void CServer::SetErrorShutdown(const char *pReason) |
| 4628 | { |
no test coverage detected