diff --git a/OpenSim/Capabilities/Handlers/GetTextureHandler.cs b/OpenSim/Capabilities/Handlers/GetTextureHandler.cs index 00186eef27..00ff3d0b5b 100644 --- a/OpenSim/Capabilities/Handlers/GetTextureHandler.cs +++ b/OpenSim/Capabilities/Handlers/GetTextureHandler.cs @@ -67,13 +67,14 @@ namespace OpenSim.Capabilities.Handlers public override byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) { - //m_log.DebugFormat("[GETTEXTURE]: called in {0}", m_scene.RegionInfo.RegionName); // Try to parse the texture ID from the request URL NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query); string textureStr = query.GetOne("texture_id"); string format = query.GetOne("format"); + m_log.DebugFormat("[GETTEXTURE]: called {0}", textureStr); + if (m_assetService == null) { m_log.Error("[GETTEXTURE]: Cannot fetch texture " + textureStr + " without an asset service"); diff --git a/OpenSim/Capabilities/Handlers/CapsServerConnector.cs b/OpenSim/Capabilities/Handlers/GetTextureServerConnector.cs similarity index 85% rename from OpenSim/Capabilities/Handlers/CapsServerConnector.cs rename to OpenSim/Capabilities/Handlers/GetTextureServerConnector.cs index 561d767c0c..0335eace8b 100644 --- a/OpenSim/Capabilities/Handlers/CapsServerConnector.cs +++ b/OpenSim/Capabilities/Handlers/GetTextureServerConnector.cs @@ -32,16 +32,15 @@ using OpenSim.Services.Interfaces; using OpenSim.Framework.Servers.HttpServer; using OpenSim.Server.Handlers.Base; using OpenMetaverse; -using Caps = OpenSim.Framework.Capabilities.Caps; namespace OpenSim.Capabilities.Handlers { - public class CapsServerConnector : ServiceConnector + public class GetTextureServerConnector : ServiceConnector { private IAssetService m_AssetService; private string m_ConfigName = "CapsService"; - public CapsServerConnector(IConfigSource config, IHttpServer server, string configName) : + public GetTextureServerConnector(IConfigSource config, IHttpServer server, string configName) : base(config, server, configName) { if (configName != String.Empty) @@ -51,11 +50,10 @@ namespace OpenSim.Capabilities.Handlers if (serverConfig == null) throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName)); - string assetService = serverConfig.GetString("LocalServiceModule", - String.Empty); + string assetService = serverConfig.GetString("AssetService", String.Empty); if (assetService == String.Empty) - throw new Exception("No LocalServiceModule in config file"); + throw new Exception("No AssetService in config file"); Object[] args = new Object[] { config }; m_AssetService = @@ -64,8 +62,6 @@ namespace OpenSim.Capabilities.Handlers if (m_AssetService == null) throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName)); - bool allowDelete = serverConfig.GetBoolean("AllowRemoteDelete", false); - server.AddStreamHandler(new GetTextureHandler("/CAPS/" + UUID.Random() + "/", m_AssetService)); } diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs index 7a7964e131..7945d5e5ca 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs @@ -78,7 +78,7 @@ namespace OpenSim.Region.ClientStack.Linden public GetClientDelegate GetClient = null; private bool m_persistBakedTextures = false; - private IAssetService m_assetCache; + private IAssetService m_assetService; private bool m_dumpAssetsToFile; private string m_regionName; private object m_fetchLock = new Object(); @@ -95,6 +95,9 @@ namespace OpenSim.Region.ClientStack.Linden m_persistBakedTextures = sconfig.GetBoolean("PersistBakedTextures", m_persistBakedTextures); } + m_assetService = m_Scene.AssetService; + m_regionName = m_Scene.RegionInfo.RegionName; + RegisterHandlers(); AddNewInventoryItem = m_Scene.AddUploadedInventoryItem; @@ -347,7 +350,7 @@ namespace OpenSim.Region.ClientStack.Linden asset.Data = data; asset.Temporary = true; asset.Local = !m_persistBakedTextures; // Local assets aren't persisted, non-local are - m_assetCache.Store(asset); + m_assetService.Store(asset); } /// @@ -476,8 +479,8 @@ namespace OpenSim.Region.ClientStack.Linden asset.Data = data; if (AddNewAsset != null) AddNewAsset(asset); - else if (m_assetCache != null) - m_assetCache.Store(asset); + else if (m_assetService != null) + m_assetService.Store(asset); InventoryItemBase item = new InventoryItemBase(); item.Owner = m_HostCapsObj.AgentID; diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs index 4436d4c795..14160ae7cd 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs @@ -32,6 +32,7 @@ using System.Reflection; using log4net; using Nini.Config; using OpenMetaverse; +using Mono.Addins; using OpenSim.Framework; using OpenSim.Region.Framework; @@ -39,9 +40,12 @@ using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using Caps = OpenSim.Framework.Capabilities.Caps; +[assembly: Addin("LindenCaps", "0.1")] +[assembly: AddinDependency("OpenSim", "0.5")] namespace OpenSim.Region.ClientStack.Linden { + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] public class BunchOfCapsModule : INonSharedRegionModule { private static readonly ILog m_log = diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs index 4920347fdb..4a8bb53584 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs @@ -54,7 +54,7 @@ namespace OpenSim.Region.ClientStack.Linden public OSDMap body; } - [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] + //[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] public class EventQueueGetModule : IEventQueue, IRegionModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs index 21041ec683..d697f5ea7b 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs @@ -52,13 +52,15 @@ namespace OpenSim.Region.ClientStack.Linden { [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] - public class GetTextureModule : ISharedRegionModule + public class GetTextureModule : INonSharedRegionModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private Scene m_scene; private IAssetService m_assetService; + private bool m_Enabled = false; + // TODO: Change this to a config option const string REDIRECT_URL = null; @@ -72,11 +74,18 @@ namespace OpenSim.Region.ClientStack.Linden if (config == null) return; - m_URL = config.GetString("Cap_GetTexture", "localhost"); + m_URL = config.GetString("Cap_GetTexture", string.Empty); + // Cap doesn't exist + if (m_URL != string.Empty) + m_Enabled = true; } public void AddRegion(Scene s) { + if (!m_Enabled) + return; + + m_scene = s; } public void RemoveRegion(Scene s) @@ -85,12 +94,15 @@ namespace OpenSim.Region.ClientStack.Linden public void RegionLoaded(Scene s) { + if (!m_Enabled) + return; + + m_assetService = m_scene.RequestModuleInterface(); + m_scene.EventManager.OnRegisterCaps += RegisterCaps; } public void PostInitialise() { - m_assetService = m_scene.RequestModuleInterface(); - m_scene.EventManager.OnRegisterCaps += RegisterCaps; } public void Close() { } @@ -108,12 +120,17 @@ namespace OpenSim.Region.ClientStack.Linden { UUID capID = UUID.Random(); - // m_log.InfoFormat("[GETTEXTURE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName); //caps.RegisterHandler("GetTexture", new StreamHandler("GET", "/CAPS/" + capID, ProcessGetTexture)); if (m_URL == "localhost") + { + m_log.InfoFormat("[GETTEXTURE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName); caps.RegisterHandler("GetTexture", new GetTextureHandler("/CAPS/" + capID + "/", m_assetService)); + } else + { + m_log.InfoFormat("[GETTEXTURE]: {0} in region {1}", m_URL, m_scene.RegionInfo.RegionName); caps.RegisterHandler("GetTexture", m_URL); + } } } diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index a9d247a2b8..a0009a869f 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml @@ -17,7 +17,7 @@ - + diff --git a/prebuild.xml b/prebuild.xml index 4fa48d140b..cc7743636f 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1549,30 +1549,28 @@ - + - ../../../../bin/ + ../../../../../bin/ - ../../../../bin/ + ../../../../../bin/ - ../../../../bin/ + ../../../../../bin/ - - - + + + - - @@ -1581,13 +1579,54 @@ + + + + + + + + + + + + + + + + + + ../../../../../bin/ + + + + + ../../../../../bin/ + + + + ../../../../../bin/ + + + + + + + + + + + + + + + - - - - - + + + + @@ -1626,7 +1665,7 @@ - +