mirror of
https://github.com/opensim/opensim.git
synced 2026-07-31 22:05:36 +08:00
* Stop warnings about non existent scene presences/entities being removed on client log off
* This is being done by preventing close from being called twice on child agent closure (nres which would have been thrown are being swallowed). * However, it should be possible to do much better cleanup on this code in the future
This commit is contained in:
@@ -454,17 +454,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
/// <param name="shutdownCircuit"></param>
|
||||
public void Close(bool shutdownCircuit)
|
||||
{
|
||||
// Pull Client out of Region
|
||||
m_log.Info("[CLIENT]: Close has been called");
|
||||
m_log.DebugFormat(
|
||||
"[CLIENT]: Close has been called with shutdownCircuit = {0} on scene {1}",
|
||||
shutdownCircuit, m_scene.RegionInfo.RegionName);
|
||||
|
||||
m_PacketHandler.Flush();
|
||||
|
||||
//raiseevent on the packet server to Shutdown the circuit
|
||||
// raise an event on the packet server to Shutdown the circuit
|
||||
// Now, if we raise the event then the packet server will call this method itself, so don't try cleanup
|
||||
// here otherwise we'll end up calling it twice.
|
||||
// FIXME: In truth, I might be wrong but this whole business of calling this method twice (with different args) looks
|
||||
// horribly tangly. Hopefully it should be possible to greatly simplify it.
|
||||
if (shutdownCircuit)
|
||||
{
|
||||
OnConnectionClosed(this);
|
||||
}
|
||||
|
||||
CloseCleanup(shutdownCircuit);
|
||||
else
|
||||
{
|
||||
CloseCleanup(shutdownCircuit);
|
||||
}
|
||||
}
|
||||
|
||||
public void Kick(string message)
|
||||
|
||||
Reference in New Issue
Block a user