aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorDiva Canto2015-06-04 06:58:07 -0700
committerDiva Canto2015-06-04 06:58:07 -0700
commitea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582 (patch)
tree48fca79961c5ffbd15ef06afdbc2acce0b23f5bf /OpenSim
parentMantis #7567: added an 8-sec expiring item cache to the inventory network con... (diff)
downloadopensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.zip
opensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.gz
opensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.bz2
opensim-SC_OLD-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.cs14
-rw-r--r--OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs10
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)