/// <summary> /// Deactivates the client if we don't receive any packets within a certain amount of time (default 60 seconds). /// </summary> /// <remarks> /// If a connection is active then we will always receive packets even if nothing else is happening, due to /// regular client pings. /// </remarks> /// <param name='client'></param> /// <param name='timeoutTicks'></param> private void DeactivateClientDueToTimeout(LLClientView client, int timeoutTicks) { lock (client.CloseSyncLock) { ClientLogoutsDueToNoReceives++; if (client.SceneAgent != null) { m_log.WarnFormat( "[LLUDPSERVER]: No packets received from {0} agent of {1} for {2}ms in {3}. Disconnecting.", client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, timeoutTicks, Scene.Name); if (!client.SceneAgent.IsChildAgent) client.Kick("Simulator logged you out due to connection timeout."); } } if (!Scene.CloseAgent(client.AgentId, true)) client.Close(true,true); }