diff options
Diffstat (limited to 'OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs')
-rw-r--r-- | OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs index 1ad543b..5c7a3df 100644 --- a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs +++ b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs | |||
@@ -587,6 +587,15 @@ namespace OpenSim.Capabilities.Handlers | |||
587 | 587 | ||
588 | AddLibraryFolders(fetchFolders, result); | 588 | AddLibraryFolders(fetchFolders, result); |
589 | 589 | ||
590 | // Filter folder Zero right here. Some viewers (Firestorm) send request for folder Zero, which doesn't make sense | ||
591 | // and can kill the sim (all root folders have parent_id Zero) | ||
592 | LLSDFetchInventoryDescendents zero = fetchFolders.Find(f => f.folder_id == UUID.Zero); | ||
593 | if (zero != null) | ||
594 | { | ||
595 | fetchFolders.Remove(zero); | ||
596 | BadFolder(zero, null, bad_folders); | ||
597 | } | ||
598 | |||
590 | if (fetchFolders.Count > 0) | 599 | if (fetchFolders.Count > 0) |
591 | { | 600 | { |
592 | UUID[] fids = new UUID[fetchFolders.Count]; | 601 | UUID[] fids = new UUID[fetchFolders.Count]; |
@@ -600,7 +609,9 @@ namespace OpenSim.Capabilities.Handlers | |||
600 | 609 | ||
601 | if (fetchedContents == null || (fetchedContents != null && fetchedContents.Length == 0)) | 610 | if (fetchedContents == null || (fetchedContents != null && fetchedContents.Length == 0)) |
602 | { | 611 | { |
603 | //m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Could not get contents of multiple folders for user {0}", fetchFolders[0].owner_id); | 612 | m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Could not get contents of multiple folders for user {0}", fetchFolders[0].owner_id); |
613 | foreach (LLSDFetchInventoryDescendents freq in fetchFolders) | ||
614 | BadFolder(freq, null, bad_folders); | ||
604 | return null; | 615 | return null; |
605 | } | 616 | } |
606 | 617 | ||