From 0bfba122f0b9ea036d18020c64110d041ff56151 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 22 Sep 2014 18:49:08 +0200 Subject: When a ghosted avatar is removed, also remove any remaining CAPS --- .../Region/CoreModules/Framework/Caps/CapabilitiesModule.cs | 10 ++++++++++ OpenSim/Region/Framework/Scenes/Scene.cs | 2 ++ 2 files changed, 12 insertions(+) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs index 498cc2f..8aceaa1 100644 --- a/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Caps/CapabilitiesModule.cs @@ -182,6 +182,16 @@ namespace OpenSim.Region.CoreModules.Framework } else { + foreach (KeyValuePair kvp in m_capsObjects) + { + if (kvp.Value.AgentID == agentId) + { + kvp.Value.DeregisterHandlers(); + m_scene.EventManager.TriggerOnDeregisterCaps(agentId, kvp.Value); + m_capsObjects.Remove(kvp.Key); + return; + } + } m_log.WarnFormat( "[CAPS]: Received request to remove CAPS handler for root agent {0} in {1}, but no such CAPS handler found!", agentId, m_scene.RegionInfo.RegionName); diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 55e7da4..769b4e8 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -4752,6 +4752,8 @@ namespace OpenSim.Region.Framework.Scenes if (m_clientManager.TryGetValue(agentID, out client)) { m_clientManager.Remove(agentID); + if (CapsModule != null) + CapsModule.RemoveCaps(agentID, 0); m_log.DebugFormat( "[SCENE]: Dead client for agent ID {0} was cleaned up in {1}", agentID, Name); return true; } -- cgit v1.1