aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs21
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs4
3 files changed, 29 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index ad015e7..0e448d1 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1607,14 +1607,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1607 currentPacket.ItemData[itemsSent % MAX_ITEMS_PER_PACKET] = CreateItemDataBlock(items[itemsSent++]); 1607 currentPacket.ItemData[itemsSent % MAX_ITEMS_PER_PACKET] = CreateItemDataBlock(items[itemsSent++]);
1608 else 1608 else
1609 { 1609 {
1610// m_log.DebugFormat(
1611// "[LLCLIENTVIEW]: Sending inventory folder details packet to {0} for folder {1}", Name, folderID);
1610 OutPacket(currentPacket, ThrottleOutPacketType.Asset, false); 1612 OutPacket(currentPacket, ThrottleOutPacketType.Asset, false);
1611 currentPacket = null; 1613 currentPacket = null;
1612 } 1614 }
1613
1614 } 1615 }
1615 1616
1616 if (currentPacket != null) 1617 if (currentPacket != null)
1618 {
1619// m_log.DebugFormat(
1620// "[LLCLIENTVIEW]: Sending inventory folder details packet to {0} for folder {1}", Name, folderID);
1617 OutPacket(currentPacket, ThrottleOutPacketType.Asset, false); 1621 OutPacket(currentPacket, ThrottleOutPacketType.Asset, false);
1622 }
1618 } 1623 }
1619 1624
1620 private InventoryDescendentsPacket.FolderDataBlock CreateFolderDataBlock(InventoryFolderBase folder) 1625 private InventoryDescendentsPacket.FolderDataBlock CreateFolderDataBlock(InventoryFolderBase folder)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index a65ceeb..3bf2c2b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1382,11 +1382,28 @@ namespace OpenSim.Region.Framework.Scenes
1382 InventoryFolderBase containingFolder = new InventoryFolderBase(folder.ID, client.AgentId); 1382 InventoryFolderBase containingFolder = new InventoryFolderBase(folder.ID, client.AgentId);
1383 containingFolder = InventoryService.GetFolder(containingFolder); 1383 containingFolder = InventoryService.GetFolder(containingFolder);
1384 1384
1385 //m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}", 1385// m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}",
1386 // contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName); 1386// contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName);
1387 1387
1388 if (containingFolder != null && containingFolder != null) 1388 if (containingFolder != null && containingFolder != null)
1389 {
1390 // If the folder requested contains links, then we need to send those folders first, otherwise the links
1391 // will be broken in the viewer.
1392 HashSet<UUID> linkedItemFolderIdsToSend = new HashSet<UUID>();
1393 foreach (InventoryItemBase item in contents.Items)
1394 {
1395 if (item.AssetType == (int)AssetType.Link)
1396 {
1397 InventoryItemBase linkedItem = InventoryService.GetItem(new InventoryItemBase(item.AssetID));
1398 linkedItemFolderIdsToSend.Add(linkedItem.Folder);
1399 }
1400 }
1401
1402 foreach (UUID linkedItemFolderId in linkedItemFolderIdsToSend)
1403 SendInventoryUpdate(client, new InventoryFolderBase(linkedItemFolderId), false, true);
1404
1389 client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, containingFolder.Version, fetchFolders, fetchItems); 1405 client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, containingFolder.Version, fetchFolders, fetchItems);
1406 }
1390 } 1407 }
1391 1408
1392 /// <summary> 1409 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index ab567fb..e2d7208 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -499,6 +499,10 @@ namespace OpenSim.Region.Framework.Scenes
499 public void HandleFetchInventoryDescendents(IClientAPI remoteClient, UUID folderID, UUID ownerID, 499 public void HandleFetchInventoryDescendents(IClientAPI remoteClient, UUID folderID, UUID ownerID,
500 bool fetchFolders, bool fetchItems, int sortOrder) 500 bool fetchFolders, bool fetchItems, int sortOrder)
501 { 501 {
502// m_log.DebugFormat(
503// "[USER INVENTORY]: HandleFetchInventoryDescendents() for {0}, folder={1}, fetchFolders={2}, fetchItems={3}, sortOrder={4}",
504// remoteClient.Name, folderID, fetchFolders, fetchItems, sortOrder);
505
502 if (folderID == UUID.Zero) 506 if (folderID == UUID.Zero)
503 return; 507 return;
504 508