From 5e4d6cab00cb29cd088ab7b62ab13aff103b64cb Mon Sep 17 00:00:00 2001 From: onefang Date: Sun, 19 May 2019 21:24:15 +1000 Subject: Dump OpenSim 0.9.0.1 into it's own branch. --- .../Services/InventoryService/XInventoryService.cs | 62 ++++++++++------------ 1 file changed, 28 insertions(+), 34 deletions(-) (limited to 'OpenSim/Services/InventoryService/XInventoryService.cs') diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs index b75193f..b8ed46c 100644 --- a/OpenSim/Services/InventoryService/XInventoryService.cs +++ b/OpenSim/Services/InventoryService/XInventoryService.cs @@ -176,7 +176,7 @@ namespace OpenSim.Services.InventoryService protected virtual XInventoryFolder[] GetSystemFolders(UUID principalID, UUID rootID) { // m_log.DebugFormat("[XINVENTORY SERVICE]: Getting system folders for {0}", principalID); - + XInventoryFolder[] allFolders = m_Database.GetFolders( new string[] { "agentID", "parentFolderID" }, new string[] { principalID.ToString(), rootID.ToString() }); @@ -192,7 +192,7 @@ namespace OpenSim.Services.InventoryService // m_log.DebugFormat( // "[XINVENTORY SERVICE]: Found {0} system folders for {1}", sysFolders.Length, principalID); - + return sysFolders; } @@ -234,7 +234,7 @@ namespace OpenSim.Services.InventoryService break; } } - + if (root == null) // oops root = folders[0]; @@ -255,7 +255,7 @@ namespace OpenSim.Services.InventoryService return null; } - + return GetSystemFolderForType(rootFolder, type); } @@ -315,8 +315,7 @@ namespace OpenSim.Services.InventoryService inventory.Items.Add(ConvertToOpenSim(i)); } - InventoryFolderBase f = new InventoryFolderBase(folderID, principalID); - f = GetFolder(f); + InventoryFolderBase f = GetFolder(principalID, folderID); if (f != null) { inventory.Version = f.Version; @@ -336,11 +335,11 @@ namespace OpenSim.Services.InventoryService return multiple; } - + public virtual List GetFolderItems(UUID principalID, UUID folderID) { // m_log.DebugFormat("[XINVENTORY]: Fetch items for folder {0}", folderID); - + // Since we probably don't get a valid principal here, either ... // List invItems = new List(); @@ -359,7 +358,7 @@ namespace OpenSim.Services.InventoryService { // m_log.DebugFormat("[XINVENTORY]: Add folder {0} type {1} in parent {2}", folder.Name, folder.Type, folder.ParentID); - InventoryFolderBase check = GetFolder(folder); + InventoryFolderBase check = GetFolder(folder.Owner, folder.ID); if (check != null) return false; @@ -387,7 +386,7 @@ namespace OpenSim.Services.InventoryService m_log.WarnFormat( "[XINVENTORY]: System folder of type {0} already exists when tried to add {1} to {2} for {3}", folder.Type, folder.Name, folder.ParentID, folder.Owner); - + return false; } } @@ -402,7 +401,7 @@ namespace OpenSim.Services.InventoryService // m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID); XInventoryFolder xFolder = ConvertFromOpenSim(folder); - InventoryFolderBase check = GetFolder(folder); + InventoryFolderBase check = GetFolder(folder.Owner, folder.ID); if (check == null) return AddFolder(folder); @@ -499,7 +498,7 @@ namespace OpenSim.Services.InventoryService { // m_log.DebugFormat( // "[XINVENTORY SERVICE]: Adding item {0} {1} to folder {2} for {3}", item.Name, item.ID, item.Folder, item.Owner); - + return m_Database.StoreItem(ConvertFromOpenSim(item)); } @@ -512,32 +511,32 @@ namespace OpenSim.Services.InventoryService // m_log.InfoFormat( // "[XINVENTORY SERVICE]: Updating item {0} {1} in folder {2}", item.Name, item.ID, item.Folder); - InventoryItemBase retrievedItem = GetItem(item); + InventoryItemBase retrievedItem = GetItem(item.Owner, item.ID); if (retrievedItem == null) { m_log.WarnFormat( - "[XINVENTORY SERVICE]: Tried to update item {0} {1}, owner {2} but no existing item found.", + "[XINVENTORY SERVICE]: Tried to update item {0} {1}, owner {2} but no existing item found.", item.Name, item.ID, item.Owner); return false; } // Do not allow invariants to change. Changes to folder ID occur in MoveItems() - if (retrievedItem.InvType != item.InvType + if (retrievedItem.InvType != item.InvType || retrievedItem.AssetType != item.AssetType - || retrievedItem.Folder != item.Folder - || retrievedItem.CreatorIdentification != item.CreatorIdentification + || retrievedItem.Folder != item.Folder + || retrievedItem.CreatorIdentification != item.CreatorIdentification || retrievedItem.Owner != item.Owner) { m_log.WarnFormat( "[XINVENTORY SERVICE]: Caller to UpdateItem() for {0} {1} tried to alter property(s) that should be invariant, (InvType, AssetType, Folder, CreatorIdentification, Owner), existing ({2}, {3}, {4}, {5}, {6}), update ({7}, {8}, {9}, {10}, {11})", - retrievedItem.Name, - retrievedItem.ID, - retrievedItem.InvType, - retrievedItem.AssetType, - retrievedItem.Folder, - retrievedItem.CreatorIdentification, + retrievedItem.Name, + retrievedItem.ID, + retrievedItem.InvType, + retrievedItem.AssetType, + retrievedItem.Folder, + retrievedItem.CreatorIdentification, retrievedItem.Owner, item.InvType, item.AssetType, @@ -598,11 +597,11 @@ namespace OpenSim.Services.InventoryService return true; } - public virtual InventoryItemBase GetItem(InventoryItemBase item) + public virtual InventoryItemBase GetItem(UUID principalID, UUID itemID) { XInventoryItem[] items = m_Database.GetItems( new string[] { "inventoryID" }, - new string[] { item.ID.ToString() }); + new string[] { itemID.ToString() }); if (items.Length == 0) return null; @@ -614,22 +613,17 @@ namespace OpenSim.Services.InventoryService { InventoryItemBase[] items = new InventoryItemBase[ids.Length]; int i = 0; - InventoryItemBase item = new InventoryItemBase(); - item.Owner = userID; foreach (UUID id in ids) - { - item.ID = id; - items[i++] = GetItem(item); - } + items[i++] = GetItem(userID, id); return items; } - public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder) + public virtual InventoryFolderBase GetFolder(UUID principalID, UUID folderID) { XInventoryFolder[] folders = m_Database.GetFolders( new string[] { "folderID"}, - new string[] { folder.ID.ToString() }); + new string[] { folderID.ToString() }); if (folders.Length == 0) return null; @@ -645,7 +639,7 @@ namespace OpenSim.Services.InventoryService return new List(); List ret = new List(); - + foreach (XInventoryItem x in items) ret.Add(ConvertToOpenSim(x)); -- cgit v1.1