diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index f5f9c02..7042c9a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -37,7 +37,7 @@ using log4net; | |||
37 | using Nini.Config; | 37 | using Nini.Config; |
38 | using OpenMetaverse.Packets; | 38 | using OpenMetaverse.Packets; |
39 | using OpenSim.Framework; | 39 | using OpenSim.Framework; |
40 | using OpenSim.Framework.Statistics; | 40 | using OpenSim.Framework.Monitoring; |
41 | using OpenSim.Region.Framework.Scenes; | 41 | using OpenSim.Region.Framework.Scenes; |
42 | using OpenMetaverse; | 42 | using OpenMetaverse; |
43 | 43 | ||
@@ -1181,22 +1181,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1181 | /// regular client pings. | 1181 | /// regular client pings. |
1182 | /// </remarks> | 1182 | /// </remarks> |
1183 | /// <param name='client'></param> | 1183 | /// <param name='client'></param> |
1184 | private void DeactivateClientDueToTimeout(IClientAPI client) | 1184 | private void DeactivateClientDueToTimeout(LLClientView client) |
1185 | { | 1185 | { |
1186 | // We must set IsActive synchronously so that we can stop the packet loop reinvoking this method, even | 1186 | lock (client.CloseSyncLock) |
1187 | // though it's set later on by LLClientView.Close() | 1187 | { |
1188 | client.IsActive = false; | 1188 | m_log.WarnFormat( |
1189 | 1189 | "[LLUDPSERVER]: Ack timeout, disconnecting {0} agent for {1} in {2}", | |
1190 | m_log.WarnFormat( | 1190 | client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, m_scene.RegionInfo.RegionName); |
1191 | "[LLUDPSERVER]: Ack timeout, disconnecting {0} agent for {1} in {2}", | 1191 | |
1192 | client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, m_scene.RegionInfo.RegionName); | 1192 | StatsManager.SimExtraStats.AddAbnormalClientThreadTermination(); |
1193 | 1193 | ||
1194 | StatsManager.SimExtraStats.AddAbnormalClientThreadTermination(); | 1194 | if (!client.SceneAgent.IsChildAgent) |
1195 | 1195 | client.Kick("Simulator logged you out due to connection timeout"); | |
1196 | if (!client.SceneAgent.IsChildAgent) | 1196 | |
1197 | client.Kick("Simulator logged you out due to connection timeout"); | 1197 | client.CloseWithoutChecks(true); |
1198 | 1198 | } | |
1199 | Util.FireAndForget(o => client.Close()); | ||
1200 | } | 1199 | } |
1201 | 1200 | ||
1202 | private void IncomingPacketHandler() | 1201 | private void IncomingPacketHandler() |