diff options
author | Diva Canto | 2015-06-04 06:58:07 -0700 |
---|---|---|
committer | Diva Canto | 2015-06-04 06:58:07 -0700 |
commit | ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582 (patch) | |
tree | 48fca79961c5ffbd15ef06afdbc2acce0b23f5bf /OpenSim | |
parent | Mantis #7567: added an 8-sec expiring item cache to the inventory network con... (diff) | |
download | opensim-SC-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.zip opensim-SC-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.gz opensim-SC-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.bz2 opensim-SC-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.xz |
Mantis #7567. Once again, avoiding prefetching linked items within linked folders. Also fixing the inventory connector GetMultipleItems, so that if everything is in the cache, it returns successfully rather than unsuccessfully.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs | 14 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs | 10 |
2 files changed, 9 insertions, 15 deletions
diff --git a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs index 62ca8a3..7618c3d 100644 --- a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs +++ b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs | |||
@@ -728,20 +728,6 @@ namespace OpenSim.Capabilities.Handlers | |||
728 | 728 | ||
729 | itemsToReturn.InsertRange(0, links); | 729 | itemsToReturn.InsertRange(0, links); |
730 | 730 | ||
731 | foreach (InventoryItemBase link in linkedFolderContents.Items) | ||
732 | { | ||
733 | // Take care of genuinely broken links where the target doesn't exist | ||
734 | // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, | ||
735 | // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles | ||
736 | // rather than having to keep track of every folder requested in the recursion. | ||
737 | if (link != null && link.AssetType == (int)AssetType.Link) | ||
738 | { | ||
739 | //m_log.DebugFormat( | ||
740 | // "[WEB FETCH INV DESC HANDLER]: Adding item {0} {1} from folder {2} linked from {3} ({4} {5})", | ||
741 | // link.Name, (AssetType)link.AssetType, linkedFolderContents.FolderID, contents.FolderID, link.ID, link.AssetID); | ||
742 | itemIDs.Add(link.AssetID); | ||
743 | } | ||
744 | } | ||
745 | } | 731 | } |
746 | } | 732 | } |
747 | 733 | ||
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs index b123e9d..33ec485 100644 --- a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs | |||
@@ -555,6 +555,9 @@ namespace OpenSim.Services.Connectors | |||
555 | pending.Add(id); | 555 | pending.Add(id); |
556 | } | 556 | } |
557 | 557 | ||
558 | if (pending.Count == 0) // we're done, everything was in the cache | ||
559 | return itemArr; | ||
560 | |||
558 | try | 561 | try |
559 | { | 562 | { |
560 | Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEITEMS", | 563 | Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEITEMS", |
@@ -565,7 +568,12 @@ namespace OpenSim.Services.Connectors | |||
565 | }); | 568 | }); |
566 | 569 | ||
567 | if (!CheckReturn(resultSet)) | 570 | if (!CheckReturn(resultSet)) |
568 | return null; | 571 | { |
572 | if (i == 0) | ||
573 | return null; | ||
574 | else | ||
575 | return itemArr; | ||
576 | } | ||
569 | 577 | ||
570 | // carry over index i where we left above | 578 | // carry over index i where we left above |
571 | foreach (KeyValuePair<string, object> kvp in resultSet) | 579 | foreach (KeyValuePair<string, object> kvp in resultSet) |