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 IJ2KDecoder J2KDecoder; | ||||||
|         public IAssetService AssetService; |         public IAssetService AssetService; | ||||||
|         public UUID AgentID; |         public UUID AgentID; | ||||||
|         public IHyperAssetService HyperAssets; |         public IInventoryAccessModule InventoryAccessModule; | ||||||
|         public OpenJPEG.J2KLayerInfo[] Layers; |         public OpenJPEG.J2KLayerInfo[] Layers; | ||||||
|         public bool IsDecoded; |         public bool IsDecoded; | ||||||
|         public bool HasAsset; |         public bool HasAsset; | ||||||
|  | @ -375,15 +375,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | ||||||
|             UUID assetID = UUID.Zero; |             UUID assetID = UUID.Zero; | ||||||
|             if (asset != null) |             if (asset != null) | ||||||
|                 assetID = asset.FullID; |                 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' |                 // Unfortunately we need this here, there's no other way. | ||||||
|                 string userAssets = HyperAssets.GetUserAssetServer(AgentID); |                 // 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 | ||||||
|                 if ((userAssets != string.Empty) && (userAssets != HyperAssets.GetSimAssetServer())) |                 // 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); |                     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; |                     return; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -357,7 +357,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | ||||||
|         protected uint m_agentFOVCounter; |         protected uint m_agentFOVCounter; | ||||||
| 
 | 
 | ||||||
|         protected IAssetService m_assetService; |         protected IAssetService m_assetService; | ||||||
|         private IHyperAssetService m_hyperAssets; |  | ||||||
|         private const bool m_checkPackets = true; |         private const bool m_checkPackets = true; | ||||||
| 
 | 
 | ||||||
|         private Timer m_propertiesPacketTimer; |         private Timer m_propertiesPacketTimer; | ||||||
|  | @ -432,7 +431,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | ||||||
| //            m_attachmentsSent = new HashSet<uint>();             | //            m_attachmentsSent = new HashSet<uint>();             | ||||||
| 
 | 
 | ||||||
|             m_assetService = m_scene.RequestModuleInterface<IAssetService>(); |             m_assetService = m_scene.RequestModuleInterface<IAssetService>(); | ||||||
|             m_hyperAssets = m_scene.RequestModuleInterface<IHyperAssetService>(); |  | ||||||
|             m_GroupsModule = scene.RequestModuleInterface<IGroupsModule>(); |             m_GroupsModule = scene.RequestModuleInterface<IGroupsModule>(); | ||||||
|             m_imageManager = new LLImageManager(this, m_assetService, Scene.RequestModuleInterface<IJ2KDecoder>()); |             m_imageManager = new LLImageManager(this, m_assetService, Scene.RequestModuleInterface<IJ2KDecoder>()); | ||||||
|             m_channelVersion = Util.StringToBytes256(scene.GetSimulatorVersion()); |             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 C5.IntervalHeap<J2KImage> m_priorityQueue = new C5.IntervalHeap<J2KImage>(10, new J2KImageComparer()); | ||||||
|         private object m_syncRoot = new object(); |         private object m_syncRoot = new object(); | ||||||
| 
 | 
 | ||||||
|         private IHyperAssetService m_hyperAssets; |  | ||||||
| 
 |  | ||||||
|         public LLClientView Client { get { return m_client; } } |         public LLClientView Client { get { return m_client; } } | ||||||
|         public AssetBase MissingImage { get { return m_missingImage; } } |         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_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_j2kDecodeModule = pJ2kDecodeModule; | ||||||
|             m_hyperAssets = client.Scene.RequestModuleInterface<IHyperAssetService>(); |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  | @ -149,7 +146,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | ||||||
|                         imgrequest.J2KDecoder = m_j2kDecodeModule; |                         imgrequest.J2KDecoder = m_j2kDecodeModule; | ||||||
|                         imgrequest.AssetService = m_assetCache; |                         imgrequest.AssetService = m_assetCache; | ||||||
|                         imgrequest.AgentID = m_client.AgentId; |                         imgrequest.AgentID = m_client.AgentId; | ||||||
|                         imgrequest.HyperAssets = m_hyperAssets; |                         imgrequest.InventoryAccessModule = m_client.Scene.RequestModuleInterface<IInventoryAccessModule>(); | ||||||
|                         imgrequest.DiscardLevel = newRequest.DiscardLevel; |                         imgrequest.DiscardLevel = newRequest.DiscardLevel; | ||||||
|                         imgrequest.StartPacket = Math.Max(1, newRequest.PacketNumber); |                         imgrequest.StartPacket = Math.Max(1, newRequest.PacketNumber); | ||||||
|                         imgrequest.Priority = newRequest.Priority; |                         imgrequest.Priority = newRequest.Priority; | ||||||
|  |  | ||||||
|  | @ -192,11 +192,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | ||||||
|                 m_assMapper.Post(item.AssetID, receiver, userAssetServer); |                 m_assMapper.Post(item.AssetID, receiver, userAssetServer); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|   |         public override bool IsForeignUser(UUID userID, out string assetServerURL) | ||||||
| 
 |  | ||||||
|         #endregion |  | ||||||
| 
 |  | ||||||
|         public bool IsForeignUser(UUID userID, out string assetServerURL) |  | ||||||
|         { |         { | ||||||
|             assetServerURL = string.Empty; |             assetServerURL = string.Empty; | ||||||
|             UserAccount account = null; |             UserAccount account = null; | ||||||
|  | @ -220,6 +216,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|         protected override InventoryItemBase GetItem(UUID agentID, UUID itemID) |         protected override InventoryItemBase GetItem(UUID agentID, UUID itemID) | ||||||
|         { |         { | ||||||
|             InventoryItemBase item = base.GetItem(agentID, itemID); |             InventoryItemBase item = base.GetItem(agentID, itemID); | ||||||
|  |  | ||||||
|  | @ -683,6 +683,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | ||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |         public virtual bool IsForeignUser(UUID userID, out string assetServerURL) | ||||||
|  |         { | ||||||
|  |             assetServerURL = string.Empty; | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         #region Misc |         #region Misc | ||||||
|  |  | ||||||
|  | @ -41,7 +41,7 @@ using OpenMetaverse; | ||||||
| namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | ||||||
| { | { | ||||||
|     public class HGAssetBroker : |     public class HGAssetBroker : | ||||||
|             ISharedRegionModule, IAssetService, IHyperAssetService |             ISharedRegionModule, IAssetService | ||||||
|     { |     { | ||||||
|         private static readonly ILog m_log = |         private static readonly ILog m_log = | ||||||
|                 LogManager.GetLogger( |                 LogManager.GetLogger( | ||||||
|  | @ -150,7 +150,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | ||||||
|             m_aScene = scene; |             m_aScene = scene; | ||||||
| 
 | 
 | ||||||
|             scene.RegisterModuleInterface<IAssetService>(this); |             scene.RegisterModuleInterface<IAssetService>(this); | ||||||
|             scene.RegisterModuleInterface<IHyperAssetService>(this); |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void RemoveRegion(Scene scene) |         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); |                                     bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||||||
|         void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); |         void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); | ||||||
|         bool GetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID); |         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