diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/Communications/Capabilities/Caps.cs | 42 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Services/HGInventoryService.cs | 14 |
2 files changed, 42 insertions, 14 deletions
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index 94614a1..1423e3a 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -49,6 +49,8 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
49 | 49 | ||
50 | public delegate void NewInventoryItem(UUID userID, InventoryItemBase item); | 50 | public delegate void NewInventoryItem(UUID userID, InventoryItemBase item); |
51 | 51 | ||
52 | public delegate void NewAsset(AssetBase asset); | ||
53 | |||
52 | public delegate UUID ItemUpdatedCallback(UUID userID, UUID itemID, byte[] data); | 54 | public delegate UUID ItemUpdatedCallback(UUID userID, UUID itemID, byte[] data); |
53 | 55 | ||
54 | public delegate void TaskScriptUpdatedCallback(UUID userID, UUID itemID, UUID primID, | 56 | public delegate void TaskScriptUpdatedCallback(UUID userID, UUID itemID, UUID primID, |
@@ -120,6 +122,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
120 | // These are callbacks which will be setup by the scene so that we can update scene data when we | 122 | // These are callbacks which will be setup by the scene so that we can update scene data when we |
121 | // receive capability calls | 123 | // receive capability calls |
122 | public NewInventoryItem AddNewInventoryItem = null; | 124 | public NewInventoryItem AddNewInventoryItem = null; |
125 | public NewAsset AddNewAsset = null; | ||
123 | public ItemUpdatedCallback ItemUpdatedCall = null; | 126 | public ItemUpdatedCallback ItemUpdatedCall = null; |
124 | public TaskScriptUpdatedCallback TaskScriptUpdatedCall = null; | 127 | public TaskScriptUpdatedCallback TaskScriptUpdatedCall = null; |
125 | public FetchInventoryDescendentsCAPS CAPSFetchInventoryDescendents = null; | 128 | public FetchInventoryDescendentsCAPS CAPSFetchInventoryDescendents = null; |
@@ -674,30 +677,38 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
674 | /// <returns></returns> | 677 | /// <returns></returns> |
675 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) | 678 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) |
676 | { | 679 | { |
680 | //m_log.Debug("[CAPS]: NewAgentInventoryRequest Request is: " + llsdRequest.ToString()); | ||
681 | //m_log.Debug("asset upload request via CAPS" + llsdRequest.inventory_type + " , " + llsdRequest.asset_type); | ||
682 | |||
677 | if (llsdRequest.asset_type == "texture" || | 683 | if (llsdRequest.asset_type == "texture" || |
678 | llsdRequest.asset_type == "animation" || | 684 | llsdRequest.asset_type == "animation" || |
679 | llsdRequest.asset_type == "sound") | 685 | llsdRequest.asset_type == "sound") |
680 | { | 686 | { |
681 | IClientAPI client = GetClient(m_agentID); | 687 | IClientAPI client = null; |
682 | IScene scene = client.Scene; | 688 | IScene scene = null; |
689 | if (GetClient != null) | ||
690 | { | ||
691 | client = GetClient(m_agentID); | ||
692 | scene = client.Scene; | ||
683 | 693 | ||
684 | IMoneyModule mm = scene.RequestModuleInterface<IMoneyModule>(); | 694 | IMoneyModule mm = scene.RequestModuleInterface<IMoneyModule>(); |
685 | 695 | ||
686 | if (mm != null) | 696 | if (mm != null) |
687 | { | ||
688 | if (!mm.UploadCovered(client)) | ||
689 | { | 697 | { |
690 | client.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); | 698 | if (!mm.UploadCovered(client)) |
691 | 699 | { | |
692 | LLSDAssetUploadResponse errorResponse = new LLSDAssetUploadResponse(); | 700 | if (client != null) |
693 | errorResponse.uploader = ""; | 701 | client.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); |
694 | errorResponse.state = "error"; | 702 | |
695 | return errorResponse; | 703 | LLSDAssetUploadResponse errorResponse = new LLSDAssetUploadResponse(); |
704 | errorResponse.uploader = ""; | ||
705 | errorResponse.state = "error"; | ||
706 | return errorResponse; | ||
707 | } | ||
696 | } | 708 | } |
697 | } | 709 | } |
698 | } | 710 | } |
699 | 711 | ||
700 | //m_log.Debug("asset upload request via CAPS" + llsdRequest.inventory_type +" , "+ llsdRequest.asset_type); | ||
701 | 712 | ||
702 | string assetName = llsdRequest.name; | 713 | string assetName = llsdRequest.name; |
703 | string assetDes = llsdRequest.description; | 714 | string assetDes = llsdRequest.description; |
@@ -771,7 +782,10 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
771 | asset.Type = assType; | 782 | asset.Type = assType; |
772 | asset.Name = assetName; | 783 | asset.Name = assetName; |
773 | asset.Data = data; | 784 | asset.Data = data; |
774 | m_assetCache.AddAsset(asset); | 785 | if (AddNewAsset != null) |
786 | AddNewAsset(asset); | ||
787 | else if (m_assetCache != null) | ||
788 | m_assetCache.AddAsset(asset); | ||
775 | 789 | ||
776 | InventoryItemBase item = new InventoryItemBase(); | 790 | InventoryItemBase item = new InventoryItemBase(); |
777 | item.Owner = m_agentID; | 791 | item.Owner = m_agentID; |
diff --git a/OpenSim/Framework/Communications/Services/HGInventoryService.cs b/OpenSim/Framework/Communications/Services/HGInventoryService.cs index 7eaed89..d59d1ae 100644 --- a/OpenSim/Framework/Communications/Services/HGInventoryService.cs +++ b/OpenSim/Framework/Communications/Services/HGInventoryService.cs | |||
@@ -234,6 +234,11 @@ namespace OpenSim.Framework.Communications.Services | |||
234 | } | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | public void AddUploadedInventoryItem(UUID agentID, InventoryItemBase item) | ||
238 | { | ||
239 | AddItem(item); | ||
240 | } | ||
241 | |||
237 | public InventoryItemBase UpdateItem(InventoryItemBase item) | 242 | public InventoryItemBase UpdateItem(InventoryItemBase item) |
238 | { | 243 | { |
239 | m_log.DebugFormat("[HGStandaloneInvService]: Update item {0} from {1}", item.ID, item.Owner); | 244 | m_log.DebugFormat("[HGStandaloneInvService]: Update item {0} from {1}", item.ID, item.Owner); |
@@ -372,6 +377,11 @@ namespace OpenSim.Framework.Communications.Services | |||
372 | return true; | 377 | return true; |
373 | } | 378 | } |
374 | 379 | ||
380 | public void PostAnAsset(AssetBase asset) | ||
381 | { | ||
382 | PostAsset(asset); | ||
383 | } | ||
384 | |||
375 | /// <summary> | 385 | /// <summary> |
376 | /// <see>CapsUpdatedInventoryItemAsset(IClientAPI, UUID, byte[])</see> | 386 | /// <see>CapsUpdatedInventoryItemAsset(IClientAPI, UUID, byte[])</see> |
377 | /// </summary> | 387 | /// </summary> |
@@ -598,6 +608,10 @@ namespace OpenSim.Framework.Communications.Services | |||
598 | Caps caps = new Caps(null, httpServer, m_thisHostname, m_thisPort, authToken, userID, false, "Inventory"); | 608 | Caps caps = new Caps(null, httpServer, m_thisHostname, m_thisPort, authToken, userID, false, "Inventory"); |
599 | caps.RegisterInventoryServiceHandlers("/" + authToken + "/InventoryCap/"); | 609 | caps.RegisterInventoryServiceHandlers("/" + authToken + "/InventoryCap/"); |
600 | caps.ItemUpdatedCall = UpdateInventoryItemAsset; | 610 | caps.ItemUpdatedCall = UpdateInventoryItemAsset; |
611 | caps.AddNewInventoryItem = AddUploadedInventoryItem; | ||
612 | caps.AddNewAsset = PostAnAsset; | ||
613 | //caps.GetClient = | ||
614 | |||
601 | Hashtable capsHandlers = caps.CapsHandlers.CapsDetails; | 615 | Hashtable capsHandlers = caps.CapsHandlers.CapsDetails; |
602 | 616 | ||
603 | httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<Guid, InventoryCollection>( | 617 | httpServer.AddStreamHandler(new RestDeserialiseSecureHandler<Guid, InventoryCollection>( |