mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
* Guard against a null point passed to RemoveClientCircuit (odd that this happens at all)
* Patch from Kurt Taylor (IBM) in http://opensimulator.org/mantis/view.php?id=1720 * Thanks Kurt!
This commit is contained in:
@@ -474,15 +474,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
public virtual void RemoveClientCircuit(uint circuitcode)
|
||||
{
|
||||
EndPoint sendto = null;
|
||||
if (clientCircuits_reverse.Contains(circuitcode)) {
|
||||
if (clientCircuits_reverse.Contains(circuitcode))
|
||||
{
|
||||
sendto = (EndPoint)clientCircuits_reverse[circuitcode];
|
||||
|
||||
clientCircuits_reverse.Remove(circuitcode);
|
||||
|
||||
lock (clientCircuits) {
|
||||
clientCircuits.Remove(sendto);
|
||||
lock (clientCircuits)
|
||||
{
|
||||
if (sendto != null)
|
||||
{
|
||||
clientCircuits.Remove(sendto);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
"[UDPSERVER]: endpoint for circuit code {0} in RemoveClientCircuit() was unexpectedly null!", circuitcode);
|
||||
}
|
||||
}
|
||||
lock (proxyCircuits) {
|
||||
lock (proxyCircuits)
|
||||
{
|
||||
proxyCircuits.Remove(circuitcode);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user