diff --git a/LibreMetaverse/AssetManager.cs b/LibreMetaverse/AssetManager.cs index 8155c8c8..003ad5c1 100644 --- a/LibreMetaverse/AssetManager.cs +++ b/LibreMetaverse/AssetManager.cs @@ -794,11 +794,11 @@ namespace OpenMetaverse } public void RequestInventoryAsset(UUID assetID, UUID itemID, UUID taskID, UUID ownerID, AssetType assetType, - bool priority, AssetReceivedCallback callback) + bool priority, UUID transferID, AssetReceivedCallback callback) { AssetDownload transfer = new AssetDownload { - ID = UUID.Random(), + ID = transferID, AssetID = assetID, AssetType = assetType, Priority = 100.0f + (priority ? 1.0f : 0.0f), @@ -932,9 +932,9 @@ namespace OpenMetaverse Client.Network.SendPacket(request, transfer.Simulator); } - public void RequestInventoryAsset(InventoryItem item, bool priority, AssetReceivedCallback callback) + public void RequestInventoryAsset(InventoryItem item, bool priority, UUID transferID, AssetReceivedCallback callback) { - RequestInventoryAsset(item.AssetUUID, item.UUID, UUID.Zero, item.OwnerID, item.AssetType, priority, callback); + RequestInventoryAsset(item.AssetUUID, item.UUID, UUID.Zero, item.OwnerID, item.AssetType, priority, transferID, callback); } public void RequestEstateAsset() diff --git a/Programs/examples/TestClient/Commands/Inventory/BackupCommand.cs b/Programs/examples/TestClient/Commands/Inventory/BackupCommand.cs index 54cefb0e..93ff3246 100644 --- a/Programs/examples/TestClient/Commands/Inventory/BackupCommand.cs +++ b/Programs/examples/TestClient/Commands/Inventory/BackupCommand.cs @@ -180,8 +180,9 @@ namespace OpenMetaverse.TestClient { Logger.DebugLog(Name + ": timeout on asset " + qdi.AssetID.ToString(), Client); // submit request again + var transferID = UUID.Random(); Client.Assets.RequestInventoryAsset( - qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived); + qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, transferID, Assets_OnAssetReceived); qdi.WhenRequested = DateTime.Now; qdi.IsRequested = true; } @@ -197,8 +198,9 @@ namespace OpenMetaverse.TestClient QueuedDownloadInfo qdi = PendingDownloads.Dequeue(); qdi.WhenRequested = DateTime.Now; qdi.IsRequested = true; + var transferID = UUID.Random(); Client.Assets.RequestInventoryAsset( - qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, Assets_OnAssetReceived); + qdi.AssetID, qdi.ItemID, qdi.TaskID, qdi.OwnerID, qdi.Type, true, transferID, Assets_OnAssetReceived); lock (CurrentDownloads) CurrentDownloads.Add(qdi); } diff --git a/Programs/examples/TestClient/Commands/Inventory/CreateNotecardCommand.cs b/Programs/examples/TestClient/Commands/Inventory/CreateNotecardCommand.cs index 77d5a587..a06289dc 100644 --- a/Programs/examples/TestClient/Commands/Inventory/CreateNotecardCommand.cs +++ b/Programs/examples/TestClient/Commands/Inventory/CreateNotecardCommand.cs @@ -170,9 +170,10 @@ namespace OpenMetaverse.TestClient AutoResetEvent assetDownloadEvent = new AutoResetEvent(false); byte[] notecardData = null; string error = "Timeout"; + var transferID = UUID.Random(); - Client.Assets.RequestInventoryAsset(assetID, itemID, UUID.Zero, Client.Self.AgentID, AssetType.Notecard, true, - delegate(AssetDownload transfer, Asset asset) + Client.Assets.RequestInventoryAsset(assetID, itemID, UUID.Zero, Client.Self.AgentID, AssetType.Notecard, true, transferID, + delegate (AssetDownload transfer, Asset asset) { if (transfer.Success) notecardData = transfer.AssetData; diff --git a/Programs/examples/TestClient/Commands/Inventory/ViewNotecardCommand.cs b/Programs/examples/TestClient/Commands/Inventory/ViewNotecardCommand.cs index adabc60f..252972a7 100644 --- a/Programs/examples/TestClient/Commands/Inventory/ViewNotecardCommand.cs +++ b/Programs/examples/TestClient/Commands/Inventory/ViewNotecardCommand.cs @@ -49,7 +49,8 @@ namespace OpenMetaverse.TestClient InventoryItem ii = (InventoryItem)Client.Inventory.Store[note]; // make request for asset - Client.Assets.RequestInventoryAsset(ii, true, + var transferID = UUID.Random(); + Client.Assets.RequestInventoryAsset(ii, true, transferID, delegate(AssetDownload transfer, Asset asset) { if (transfer.Success)