From 5001f61c08fea2ebfcb2590be69073d04d129d70 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 29 Jan 2010 18:59:41 -0800 Subject: * HGGridConnector is no longer necessary. * Handle logout properly. This needed an addition to IClientAPI, because of how the logout packet is currently being handled -- the agent is being removed from the scene before the different event handlers are executed, which is broken. --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 7 +++++++ OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 3 +++ 2 files changed, 10 insertions(+) (limited to 'OpenSim/Region/ClientStack/LindenUDP') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index ae0bd79..79bea26 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -351,6 +351,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private bool m_SendLogoutPacketWhenClosing = true; private AgentUpdateArgs lastarg; private bool m_IsActive = true; + private bool m_IsLoggingOut = false; protected Dictionary m_packetHandlers = new Dictionary(); protected Dictionary m_genericPacketHandlers = new Dictionary(); //PauPaw:Local Generic Message handlers @@ -414,6 +415,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP get { return m_IsActive; } set { m_IsActive = value; } } + public bool IsLoggingOut + { + get { return m_IsLoggingOut; } + set { m_IsLoggingOut = value; } + } + public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } #endregion Properties diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 3c4fa72..2d956fa 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs @@ -919,7 +919,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP // Remove this client from the scene IClientAPI client; if (m_scene.TryGetClient(udpClient.AgentID, out client)) + { + client.IsLoggingOut = true; client.Close(); + } } private void IncomingPacketHandler() -- cgit v1.1