diff options
author | diva | 2008-12-15 20:45:40 +0000 |
---|---|---|
committer | diva | 2008-12-15 20:45:40 +0000 |
commit | 8fffdac7fa724c651935acb46725bc101cf8dfee (patch) | |
tree | 21f44f4f921d00a0b1b9a65f3e1e53b5f1a396b3 | |
parent | * minor: method documentation and miscellaneous tidy (diff) | |
download | opensim-SC_OLD-8fffdac7fa724c651935acb46725bc101cf8dfee.zip opensim-SC_OLD-8fffdac7fa724c651935acb46725bc101cf8dfee.tar.gz opensim-SC_OLD-8fffdac7fa724c651935acb46725bc101cf8dfee.tar.bz2 opensim-SC_OLD-8fffdac7fa724c651935acb46725bc101cf8dfee.tar.xz |
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.
4 files changed, 20 insertions, 2 deletions
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index a1b658f..99a982b 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -194,6 +194,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
194 | /// </summary> | 194 | /// </summary> |
195 | public void DropInventory() | 195 | public void DropInventory() |
196 | { | 196 | { |
197 | m_log.Debug("[INVENTORY CACHE]: DropInventory called"); | ||
197 | // Make sure there aren't pending requests around when we do this | 198 | // Make sure there aren't pending requests around when we do this |
198 | // FIXME: There is still a race condition where an inventory operation can be requested (since these aren't being locked). | 199 | // FIXME: There is still a race condition where an inventory operation can be requested (since these aren't being locked). |
199 | // Will have to extend locking to exclude this very soon. | 200 | // Will have to extend locking to exclude this very soon. |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index 0e3634c..20ea030 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -350,11 +350,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Transfer | |||
350 | // are we even doing here?? | 350 | // are we even doing here?? |
351 | // | 351 | // |
352 | if (s == scene) | 352 | if (s == scene) |
353 | { | ||
354 | //m_log.Debug("[INVTRANSFERMOD]: s == scene. Returning true in " + scene.RegionInfo.RegionName); | ||
353 | return true; | 355 | return true; |
356 | } | ||
354 | else | 357 | else |
358 | { | ||
359 | //m_log.Debug("[INVTRANSFERMOD]: s != scene. Returning false in " + scene.RegionInfo.RegionName); | ||
355 | return false; | 360 | return false; |
361 | } | ||
356 | } | 362 | } |
357 | } | 363 | } |
364 | //m_log.Debug("[INVTRANSFERMOD]: agent not in scene. Returning true in " + scene.RegionInfo.RegionName); | ||
358 | return true; | 365 | return true; |
359 | } | 366 | } |
360 | 367 | ||
@@ -363,12 +370,14 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Transfer | |||
363 | // | 370 | // |
364 | if (m_AgentRegions[agentID] == scene) | 371 | if (m_AgentRegions[agentID] == scene) |
365 | { | 372 | { |
373 | //m_log.Debug("[INVTRANSFERMOD]: m_AgentRegions[agentID] == scene. Returning true in " + scene.RegionInfo.RegionName); | ||
366 | m_AgentRegions.Remove(agentID); | 374 | m_AgentRegions.Remove(agentID); |
367 | return true; | 375 | return true; |
368 | } | 376 | } |
369 | 377 | ||
370 | // Another region has claimed the agent | 378 | // Another region has claimed the agent |
371 | // | 379 | // |
380 | //m_log.Debug("[INVTRANSFERMOD]: last resort. Returning false in " + scene.RegionInfo.RegionName); | ||
372 | return false; | 381 | return false; |
373 | } | 382 | } |
374 | 383 | ||
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 | |||
2106 | string xmlData = Utils.BytesToString(rezAsset.Data); | 2106 | string xmlData = Utils.BytesToString(rezAsset.Data); |
2107 | SceneObjectGroup group = new SceneObjectGroup(xmlData, true); | 2107 | SceneObjectGroup group = new SceneObjectGroup(xmlData, true); |
2108 | if (!Permissions.CanRezObject( | 2108 | if (!Permissions.CanRezObject( |
2109 | group.Children.Count, remoteClient.AgentId, pos) | 2109 | group.Children.Count, remoteClient.AgentId, pos) |
2110 | && !attachment) | 2110 | && !attachment) |
2111 | { | 2111 | { |
2112 | return null; | 2112 | return null; |
@@ -2226,7 +2226,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2226 | } | 2226 | } |
2227 | } | 2227 | } |
2228 | } | 2228 | } |
2229 | else | ||
2230 | m_log.WarnFormat("[AGENT INVENTORY]: Root folder not found in {0}", RegionInfo.RegionName); | ||
2229 | } | 2231 | } |
2232 | else | ||
2233 | m_log.WarnFormat("[AGENT INVENTORY]: User profile not found in {0}", RegionInfo.RegionName); | ||
2230 | 2234 | ||
2231 | return null; | 2235 | return null; |
2232 | } | 2236 | } |
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 | |||
2709 | m_sceneGraph.removeUserCount(!childagentYN); | 2709 | m_sceneGraph.removeUserCount(!childagentYN); |
2710 | RemoveCapsHandler(agentID); | 2710 | RemoveCapsHandler(agentID); |
2711 | 2711 | ||
2712 | CommsManager.UserProfileCacheService.RemoveUser(agentID); | 2712 | if (avatar.Scene.NeedSceneCacheClear(avatar.UUID)) |
2713 | { | ||
2714 | m_log.InfoFormat("[SCENE]: User {0} is going to another region, profile cache removed in {1}", avatar.UUID, RegionInfo.RegionName); | ||
2715 | CommsManager.UserProfileCacheService.RemoveUser(agentID); | ||
2716 | } | ||
2713 | 2717 | ||
2714 | if (!avatar.IsChildAgent) | 2718 | if (!avatar.IsChildAgent) |
2715 | { | 2719 | { |