diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Capabilities/Handlers/FetchInventoryDescendents/FetchInvDescHandler.cs | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/OpenSim/Capabilities/Handlers/FetchInventoryDescendents/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventoryDescendents/FetchInvDescHandler.cs index 8dd6235..810096f 100644 --- a/OpenSim/Capabilities/Handlers/FetchInventoryDescendents/FetchInvDescHandler.cs +++ b/OpenSim/Capabilities/Handlers/FetchInventoryDescendents/FetchInvDescHandler.cs | |||
@@ -676,8 +676,8 @@ namespace OpenSim.Capabilities.Handlers | |||
676 | { | 676 | { |
677 | m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Unable to fetch folder {0}", freq.folder_id); | 677 | m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Unable to fetch folder {0}", freq.folder_id); |
678 | bad_folders.Add(freq.folder_id); | 678 | bad_folders.Add(freq.folder_id); |
679 | bad = true; | ||
680 | } | 679 | } |
680 | bad = true; | ||
681 | } | 681 | } |
682 | } | 682 | } |
683 | 683 | ||
@@ -755,15 +755,23 @@ namespace OpenSim.Capabilities.Handlers | |||
755 | } | 755 | } |
756 | } | 756 | } |
757 | 757 | ||
758 | foreach (InventoryItemBase linkedItem in linked) | 758 | //m_log.DebugFormat("[WEB FETCH INV DESC HANDLER]: Processing folder {0}. Existing items:", freq.folder_id); |
759 | //foreach (InventoryItemBase item in itemsToReturn) | ||
760 | // m_log.DebugFormat("[XXX]: {0} {1} {2}", item.Name, item.AssetType, item.Folder); | ||
761 | |||
762 | if (linked != null) | ||
759 | { | 763 | { |
760 | // Take care of genuinely broken links where the target doesn't exist | 764 | foreach (InventoryItemBase linkedItem in linked) |
761 | // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, | ||
762 | // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles | ||
763 | // rather than having to keep track of every folder requested in the recursion. | ||
764 | if (linkedItem != null && linkedItem.AssetType != (int)AssetType.Link) | ||
765 | { | 765 | { |
766 | itemsToReturn.Insert(0, linkedItem); | 766 | // Take care of genuinely broken links where the target doesn't exist |
767 | // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, | ||
768 | // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles | ||
769 | // rather than having to keep track of every folder requested in the recursion. | ||
770 | if (linkedItem != null && linkedItem.AssetType != (int)AssetType.Link) | ||
771 | { | ||
772 | itemsToReturn.Insert(0, linkedItem); | ||
773 | //m_log.DebugFormat("[WEB FETCH INV DESC HANDLER]: Added {0} {1} {2}", linkedItem.Name, linkedItem.AssetType, linkedItem.Folder); | ||
774 | } | ||
767 | } | 775 | } |
768 | } | 776 | } |
769 | } | 777 | } |
@@ -824,7 +832,7 @@ namespace OpenSim.Capabilities.Handlers | |||
824 | } | 832 | } |
825 | } | 833 | } |
826 | 834 | ||
827 | struct InventoryCollectionWithDescendents | 835 | class InventoryCollectionWithDescendents |
828 | { | 836 | { |
829 | public InventoryCollection Collection; | 837 | public InventoryCollection Collection; |
830 | public int Descendents; | 838 | public int Descendents; |