diff options
author | Melanie | 2009-08-29 03:26:44 +0100 |
---|---|---|
committer | Melanie | 2009-08-29 03:26:44 +0100 |
commit | 976cf4284bdbef14553c2e164cb67d25bd2b9076 (patch) | |
tree | 20004db93f70bc5116df39986d0da4119c7891e0 /OpenSim/Region | |
parent | Modify CAPS inventory code. Currently this is not executed (diff) | |
download | opensim-SC_OLD-976cf4284bdbef14553c2e164cb67d25bd2b9076.zip opensim-SC_OLD-976cf4284bdbef14553c2e164cb67d25bd2b9076.tar.gz opensim-SC_OLD-976cf4284bdbef14553c2e164cb67d25bd2b9076.tar.bz2 opensim-SC_OLD-976cf4284bdbef14553c2e164cb67d25bd2b9076.tar.xz |
Fix up WebFetchInventoryDescendents to really return all data needed,
especially the folder version and the subfolders. Fixes inventory search
hang and folders not loading.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index c816790..55b100b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |||
@@ -473,7 +473,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
473 | /// <param name="sortOrder"></param> | 473 | /// <param name="sortOrder"></param> |
474 | /// <returns>null if the inventory look up failed</returns> | 474 | /// <returns>null if the inventory look up failed</returns> |
475 | public InventoryCollection HandleFetchInventoryDescendentsCAPS(UUID agentID, UUID folderID, UUID ownerID, | 475 | public InventoryCollection HandleFetchInventoryDescendentsCAPS(UUID agentID, UUID folderID, UUID ownerID, |
476 | bool fetchFolders, bool fetchItems, int sortOrder) | 476 | bool fetchFolders, bool fetchItems, int sortOrder, out int version) |
477 | { | 477 | { |
478 | // m_log.DebugFormat( | 478 | // m_log.DebugFormat( |
479 | // "[INVENTORY CACHE]: Fetching folders ({0}), items ({1}) from {2} for agent {3}", | 479 | // "[INVENTORY CACHE]: Fetching folders ({0}), items ({1}) from {2} for agent {3}", |
@@ -487,6 +487,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
487 | InventoryFolderImpl fold; | 487 | InventoryFolderImpl fold; |
488 | if ((fold = CommsManager.UserProfileCacheService.LibraryRoot.FindFolder(folderID)) != null) | 488 | if ((fold = CommsManager.UserProfileCacheService.LibraryRoot.FindFolder(folderID)) != null) |
489 | { | 489 | { |
490 | version = 0; | ||
490 | InventoryCollection ret = new InventoryCollection(); | 491 | InventoryCollection ret = new InventoryCollection(); |
491 | ret.Folders = new List<InventoryFolderBase>(); | 492 | ret.Folders = new List<InventoryFolderBase>(); |
492 | ret.Items = fold.RequestListOfItems(); | 493 | ret.Items = fold.RequestListOfItems(); |
@@ -495,6 +496,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
495 | } | 496 | } |
496 | 497 | ||
497 | InventoryCollection contents = InventoryService.GetFolderContent(agentID, folderID); | 498 | InventoryCollection contents = InventoryService.GetFolderContent(agentID, folderID); |
499 | |||
500 | if (folderID != UUID.Zero) | ||
501 | { | ||
502 | InventoryFolderBase containingFolder = new InventoryFolderBase(); | ||
503 | containingFolder.ID = folderID; | ||
504 | containingFolder.Owner = agentID; | ||
505 | containingFolder = InventoryService.GetFolder(containingFolder); | ||
506 | version = containingFolder.Version; | ||
507 | } | ||
508 | else | ||
509 | { | ||
510 | // Lost itemsm don't really need a version | ||
511 | version = 1; | ||
512 | } | ||
513 | |||
498 | return contents; | 514 | return contents; |
499 | 515 | ||
500 | } | 516 | } |