From 8fffdac7fa724c651935acb46725bc101cf8dfee Mon Sep 17 00:00:00 2001 From: diva Date: Mon, 15 Dec 2008 20:45:40 +0000 Subject: Attempt at restoring inventory access after TPs/crossings. RemoveClient in Scene was being too aggressive at nixing the user out of the cache. We're now relying on NeedSceneCacheClear to decide whether to nix it or not. All other mods in other files are for better debugging messages. --- OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 6 +++++- OpenSim/Region/Environment/Scenes/Scene.cs | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index c98c4f3..7c518c4 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -2106,7 +2106,7 @@ namespace OpenSim.Region.Environment.Scenes string xmlData = Utils.BytesToString(rezAsset.Data); SceneObjectGroup group = new SceneObjectGroup(xmlData, true); if (!Permissions.CanRezObject( - group.Children.Count, remoteClient.AgentId, pos) + group.Children.Count, remoteClient.AgentId, pos) && !attachment) { return null; @@ -2226,7 +2226,11 @@ namespace OpenSim.Region.Environment.Scenes } } } + else + m_log.WarnFormat("[AGENT INVENTORY]: Root folder not found in {0}", RegionInfo.RegionName); } + else + m_log.WarnFormat("[AGENT INVENTORY]: User profile not found in {0}", RegionInfo.RegionName); return null; } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 873662e..f6d82c4 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -2709,7 +2709,11 @@ namespace OpenSim.Region.Environment.Scenes m_sceneGraph.removeUserCount(!childagentYN); RemoveCapsHandler(agentID); - CommsManager.UserProfileCacheService.RemoveUser(agentID); + if (avatar.Scene.NeedSceneCacheClear(avatar.UUID)) + { + m_log.InfoFormat("[SCENE]: User {0} is going to another region, profile cache removed in {1}", avatar.UUID, RegionInfo.RegionName); + CommsManager.UserProfileCacheService.RemoveUser(agentID); + } if (!avatar.IsChildAgent) { -- cgit v1.1