Got rid of all hyperassets references. Also fixed accessing textures in user's inventory in foreign grids.
							parent
							
								
									77e54747d8
								
							
						
					
					
						commit
						80e16907bf
					
				|  | @ -55,7 +55,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|         public IJ2KDecoder J2KDecoder; | ||||
|         public IAssetService AssetService; | ||||
|         public UUID AgentID; | ||||
|         public IHyperAssetService HyperAssets; | ||||
|         public IInventoryAccessModule InventoryAccessModule; | ||||
|         public OpenJPEG.J2KLayerInfo[] Layers; | ||||
|         public bool IsDecoded; | ||||
|         public bool HasAsset; | ||||
|  | @ -375,15 +375,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|             UUID assetID = UUID.Zero; | ||||
|             if (asset != null) | ||||
|                 assetID = asset.FullID; | ||||
|             else if ((HyperAssets != null) && (sender != HyperAssets)) | ||||
|             else if ((InventoryAccessModule != null) && (sender != InventoryAccessModule)) | ||||
|             { | ||||
|                 // Try the user's inventory, but only if it's different from the regions' | ||||
|                 string userAssets = HyperAssets.GetUserAssetServer(AgentID); | ||||
| 
 | ||||
|                 if ((userAssets != string.Empty) && (userAssets != HyperAssets.GetSimAssetServer())) | ||||
|                 // Unfortunately we need this here, there's no other way. | ||||
|                 // This is due to the fact that textures opened directly from the agent's inventory | ||||
|                 // don't have any distinguishing feature. As such, in order to serve those when the | ||||
|                 // foreign user is visiting, we need to try again after the first fail to the local | ||||
|                 // asset service. | ||||
|                 string assetServerURL = string.Empty; | ||||
|                 if (InventoryAccessModule.IsForeignUser(AgentID, out assetServerURL)) | ||||
|                 { | ||||
|                     m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", id); | ||||
|                     AssetService.Get(userAssets + "/" + id, HyperAssets, AssetReceived); | ||||
|                     AssetService.Get(assetServerURL + "/" + id, InventoryAccessModule, AssetReceived); | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|  |  | |||
|  | @ -357,7 +357,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|         protected uint m_agentFOVCounter; | ||||
| 
 | ||||
|         protected IAssetService m_assetService; | ||||
|         private IHyperAssetService m_hyperAssets; | ||||
|         private const bool m_checkPackets = true; | ||||
| 
 | ||||
|         private Timer m_propertiesPacketTimer; | ||||
|  | @ -432,7 +431,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
| //            m_attachmentsSent = new HashSet<uint>();             | ||||
| 
 | ||||
|             m_assetService = m_scene.RequestModuleInterface<IAssetService>(); | ||||
|             m_hyperAssets = m_scene.RequestModuleInterface<IHyperAssetService>(); | ||||
|             m_GroupsModule = scene.RequestModuleInterface<IGroupsModule>(); | ||||
|             m_imageManager = new LLImageManager(this, m_assetService, Scene.RequestModuleInterface<IJ2KDecoder>()); | ||||
|             m_channelVersion = Util.StringToBytes256(scene.GetSimulatorVersion()); | ||||
|  |  | |||
|  | @ -58,8 +58,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|         private C5.IntervalHeap<J2KImage> m_priorityQueue = new C5.IntervalHeap<J2KImage>(10, new J2KImageComparer()); | ||||
|         private object m_syncRoot = new object(); | ||||
| 
 | ||||
|         private IHyperAssetService m_hyperAssets; | ||||
| 
 | ||||
|         public LLClientView Client { get { return m_client; } } | ||||
|         public AssetBase MissingImage { get { return m_missingImage; } } | ||||
| 
 | ||||
|  | @ -75,7 +73,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                 m_log.Error("[ClientView] - Couldn't set missing image asset, falling back to missing image packet. This is known to crash the client"); | ||||
| 
 | ||||
|             m_j2kDecodeModule = pJ2kDecodeModule; | ||||
|             m_hyperAssets = client.Scene.RequestModuleInterface<IHyperAssetService>(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  | @ -149,7 +146,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                         imgrequest.J2KDecoder = m_j2kDecodeModule; | ||||
|                         imgrequest.AssetService = m_assetCache; | ||||
|                         imgrequest.AgentID = m_client.AgentId; | ||||
|                         imgrequest.HyperAssets = m_hyperAssets; | ||||
|                         imgrequest.InventoryAccessModule = m_client.Scene.RequestModuleInterface<IInventoryAccessModule>(); | ||||
|                         imgrequest.DiscardLevel = newRequest.DiscardLevel; | ||||
|                         imgrequest.StartPacket = Math.Max(1, newRequest.PacketNumber); | ||||
|                         imgrequest.Priority = newRequest.Priority; | ||||
|  |  | |||
|  | @ -192,11 +192,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
|                 m_assMapper.Post(item.AssetID, receiver, userAssetServer); | ||||
|         } | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         public bool IsForeignUser(UUID userID, out string assetServerURL) | ||||
|         public override bool IsForeignUser(UUID userID, out string assetServerURL) | ||||
|         { | ||||
|             assetServerURL = string.Empty; | ||||
|             UserAccount account = null; | ||||
|  | @ -220,6 +216,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         protected override InventoryItemBase GetItem(UUID agentID, UUID itemID) | ||||
|         { | ||||
|             InventoryItemBase item = base.GetItem(agentID, itemID); | ||||
|  |  | |||
|  | @ -683,6 +683,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
|             return true; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         public virtual bool IsForeignUser(UUID userID, out string assetServerURL) | ||||
|         { | ||||
|             assetServerURL = string.Empty; | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         #region Misc | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ using OpenMetaverse; | |||
| namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | ||||
| { | ||||
|     public class HGAssetBroker : | ||||
|             ISharedRegionModule, IAssetService, IHyperAssetService | ||||
|             ISharedRegionModule, IAssetService | ||||
|     { | ||||
|         private static readonly ILog m_log = | ||||
|                 LogManager.GetLogger( | ||||
|  | @ -150,7 +150,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
|             m_aScene = scene; | ||||
| 
 | ||||
|             scene.RegisterModuleInterface<IAssetService>(this); | ||||
|             scene.RegisterModuleInterface<IHyperAssetService>(this); | ||||
|         } | ||||
| 
 | ||||
|         public void RemoveRegion(Scene scene) | ||||
|  |  | |||
|  | @ -1,37 +0,0 @@ | |||
| /* | ||||
|  * Copyright (c) Contributors, http://opensimulator.org/ | ||||
|  * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of the OpenSimulator Project nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| using System; | ||||
| using OpenMetaverse; | ||||
| 
 | ||||
| namespace OpenSim.Region.Framework.Interfaces | ||||
| { | ||||
|     public interface IHyperAssetService | ||||
|     { | ||||
|         string GetUserAssetServer(UUID userID); | ||||
|         string GetSimAssetServer(); | ||||
|     } | ||||
| } | ||||
|  | @ -44,6 +44,8 @@ namespace OpenSim.Region.Framework.Interfaces | |||
|                                     bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||||
|         void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); | ||||
|         bool GetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID); | ||||
|         //bool GetTextureFromAgentInventory(UUID agentID, UUID assetID); | ||||
| 
 | ||||
|         // Must be here because of textures in user's inventory | ||||
|         bool IsForeignUser(UUID userID, out string assetServerURL); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Diva Canto
						Diva Canto