aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs
diff options
context:
space:
mode:
authorDiva Canto2015-06-23 14:24:55 -0700
committerDiva Canto2015-06-23 14:24:55 -0700
commitb5ac0e1ab811626ef5e904d6f67689dbd33433bc (patch)
treea251bbfa94d8e3b90d314fcbcb79f3ccd971ee17 /OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs
parentFix my typo, the dll is named OpenSim, not Opensim (diff)
downloadopensim-SC-b5ac0e1ab811626ef5e904d6f67689dbd33433bc.zip
opensim-SC-b5ac0e1ab811626ef5e904d6f67689dbd33433bc.tar.gz
opensim-SC-b5ac0e1ab811626ef5e904d6f67689dbd33433bc.tar.bz2
opensim-SC-b5ac0e1ab811626ef5e904d6f67689dbd33433bc.tar.xz
FetchInventoryDescendents2: Signal to the viewer that folder with UUID.Zero is a bad folder. Don't even go to the backend to ask for it, because that will likely kill the sim. Apparently Firestorm requests folder Zero quite often.
Diffstat (limited to '')
-rw-r--r--OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs13
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