aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs19
1 files changed, 15 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index d705ef2..570ebe9 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -474,15 +474,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
474 public virtual void RemoveClientCircuit(uint circuitcode) 474 public virtual void RemoveClientCircuit(uint circuitcode)
475 { 475 {
476 EndPoint sendto = null; 476 EndPoint sendto = null;
477 if (clientCircuits_reverse.Contains(circuitcode)) { 477 if (clientCircuits_reverse.Contains(circuitcode))
478 {
478 sendto = (EndPoint)clientCircuits_reverse[circuitcode]; 479 sendto = (EndPoint)clientCircuits_reverse[circuitcode];
479 480
480 clientCircuits_reverse.Remove(circuitcode); 481 clientCircuits_reverse.Remove(circuitcode);
481 482
482 lock (clientCircuits) { 483 lock (clientCircuits)
483 clientCircuits.Remove(sendto); 484 {
485 if (sendto != null)
486 {
487 clientCircuits.Remove(sendto);
488 }
489 else
490 {
491 m_log.DebugFormat(
492 "[UDPSERVER]: endpoint for circuit code {0} in RemoveClientCircuit() was unexpectedly null!", circuitcode);
493 }
484 } 494 }
485 lock (proxyCircuits) { 495 lock (proxyCircuits)
496 {
486 proxyCircuits.Remove(circuitcode); 497 proxyCircuits.Remove(circuitcode);
487 } 498 }
488 } 499 }