aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs23
1 files changed, 20 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 34923be..c807260 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;
@@ -718,10 +724,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
718 { 724 {
719 Queue<UDPPacketBuffer> queue; 725 Queue<UDPPacketBuffer> queue;
720 if (m_pendingCache.TryGetValue(address, out queue)) 726 if (m_pendingCache.TryGetValue(address, out queue))
727 {
728 m_log.DebugFormat("[LLUDPSERVER]: Enqueued a {0} packet into the pending queue", packet.Type);
721 queue.Enqueue(buffer); 729 queue.Enqueue(buffer);
730 }
731 else
732 {
733 m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName);
734 }
722 } 735 }
723 736
724// m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName);
725 return; 737 return;
726 } 738 }
727 739
@@ -964,10 +976,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
964 lock (m_pendingCache) 976 lock (m_pendingCache)
965 { 977 {
966 if (!m_pendingCache.TryGetValue(remoteEndPoint, out queue)) 978 if (!m_pendingCache.TryGetValue(remoteEndPoint, out queue))
979 {
980 m_log.DebugFormat("[LLUDPSERVER]: Client created but no pending queue present");
967 return; 981 return;
982 }
968 m_pendingCache.Remove(remoteEndPoint); 983 m_pendingCache.Remove(remoteEndPoint);
969 } 984 }
970 985
986 m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count);
987
971 // Reinject queued packets 988 // Reinject queued packets
972 while(queue.Count > 0) 989 while(queue.Count > 0)
973 { 990 {