diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 1b72b26..43167ee 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -1631,11 +1631,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1631 | CompleteAgentMovementPacket packet = (CompleteAgentMovementPacket)array[1]; | 1631 | CompleteAgentMovementPacket packet = (CompleteAgentMovementPacket)array[1]; |
1632 | 1632 | ||
1633 | // Determine which agent this packet came from | 1633 | // Determine which agent this packet came from |
1634 | int count = 10; | 1634 | int count = 20; |
1635 | while (!m_scene.TryGetClient(endPoint, out client) && count-- > 0) | 1635 | bool ready = false; |
1636 | while (!ready && count-- > 0) | ||
1636 | { | 1637 | { |
1637 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | 1638 | if (m_scene.TryGetClient(endPoint, out client) && client.IsActive) |
1638 | Thread.Sleep(200); | 1639 | { |
1640 | LLUDPClient udpClient = ((LLClientView)client).UDPClient; | ||
1641 | if (udpClient != null && udpClient.IsConnected) | ||
1642 | ready = true; | ||
1643 | else | ||
1644 | { | ||
1645 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | ||
1646 | Thread.Sleep(200); | ||
1647 | } | ||
1648 | } | ||
1649 | else | ||
1650 | { | ||
1651 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | ||
1652 | Thread.Sleep(200); | ||
1653 | } | ||
1639 | } | 1654 | } |
1640 | 1655 | ||
1641 | if (client == null) | 1656 | if (client == null) |