diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 10e8e48..a662092 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -701,10 +701,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
701 | // UseCircuitCode handling | 701 | // UseCircuitCode handling |
702 | if (packet.Type == PacketType.UseCircuitCode) | 702 | if (packet.Type == PacketType.UseCircuitCode) |
703 | { | 703 | { |
704 | object[] array = new object[] { buffer, packet }; | ||
705 | |||
706 | lock (m_pendingCache) | 704 | lock (m_pendingCache) |
705 | { | ||
706 | if (m_pendingCache.Contains(address)) | ||
707 | return; | ||
708 | |||
707 | m_pendingCache.AddOrUpdate(address, new Queue<UDPPacketBuffer>(), 60); | 709 | m_pendingCache.AddOrUpdate(address, new Queue<UDPPacketBuffer>(), 60); |
710 | } | ||
711 | |||
712 | object[] array = new object[] { buffer, packet }; | ||
713 | |||
708 | Util.FireAndForget(HandleUseCircuitCode, array); | 714 | Util.FireAndForget(HandleUseCircuitCode, array); |
709 | 715 | ||
710 | return; | 716 | return; |
@@ -721,11 +727,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
721 | { | 727 | { |
722 | Queue<UDPPacketBuffer> queue; | 728 | Queue<UDPPacketBuffer> queue; |
723 | if (m_pendingCache.TryGetValue(address, out queue)) | 729 | if (m_pendingCache.TryGetValue(address, out queue)) |
730 | { | ||
731 | m_log.DebugFormat("[LLUDPSERVER]: Enqueued a {0} packet into the pending queue", packet.Type); | ||
724 | queue.Enqueue(buffer); | 732 | queue.Enqueue(buffer); |
733 | } | ||
734 | else | ||
735 | { | ||
736 | m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName); | ||
737 | } | ||
725 | } | 738 | } |
726 | 739 | ||
740 | <<<<<<< HEAD | ||
727 | // m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName); | 741 | // m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName); |
728 | >>>>>>> 2606484e45138adef289386509b1e27552a32aee | 742 | >>>>>>> 2606484e45138adef289386509b1e27552a32aee |
743 | ======= | ||
744 | >>>>>>> 0baa1b557af20af3590737dc04294a9bdc8e8728 | ||
729 | return; | 745 | return; |
730 | } | 746 | } |
731 | 747 | ||
@@ -968,10 +984,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
968 | lock (m_pendingCache) | 984 | lock (m_pendingCache) |
969 | { | 985 | { |
970 | if (!m_pendingCache.TryGetValue(remoteEndPoint, out queue)) | 986 | if (!m_pendingCache.TryGetValue(remoteEndPoint, out queue)) |
987 | { | ||
988 | m_log.DebugFormat("[LLUDPSERVER]: Client created but no pending queue present"); | ||
971 | return; | 989 | return; |
990 | } | ||
972 | m_pendingCache.Remove(remoteEndPoint); | 991 | m_pendingCache.Remove(remoteEndPoint); |
973 | } | 992 | } |
974 | 993 | ||
994 | m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count); | ||
995 | |||
975 | // Reinject queued packets | 996 | // Reinject queued packets |
976 | while(queue.Count > 0) | 997 | while(queue.Count > 0) |
977 | { | 998 | { |