aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Capabilities
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Capabilities')
-rw-r--r--OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs12
-rw-r--r--OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs4
-rw-r--r--OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs2
3 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
index 7b3124a..4dfa847 100644
--- a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
+++ b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
@@ -56,12 +56,15 @@ namespace OpenSim.Capabilities.Handlers
56 public const string DefaultFormat = "x-j2c"; 56 public const string DefaultFormat = "x-j2c";
57 57
58 // TODO: Change this to a config option 58 // TODO: Change this to a config option
59 const string REDIRECT_URL = null; 59 private string m_RedirectURL = null;
60 60
61 public GetTextureHandler(string path, IAssetService assService, string name, string description) 61 public GetTextureHandler(string path, IAssetService assService, string name, string description, string redirectURL)
62 : base("GET", path, name, description) 62 : base("GET", path, name, description)
63 { 63 {
64 m_assetService = assService; 64 m_assetService = assService;
65 m_RedirectURL = redirectURL;
66 if (!m_RedirectURL.EndsWith("/"))
67 m_RedirectURL += "/";
65 } 68 }
66 69
67 protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) 70 protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
@@ -134,7 +137,7 @@ namespace OpenSim.Capabilities.Handlers
134 if (format != DefaultFormat) 137 if (format != DefaultFormat)
135 fullID = fullID + "-" + format; 138 fullID = fullID + "-" + format;
136 139
137 if (!String.IsNullOrEmpty(REDIRECT_URL)) 140 if (!String.IsNullOrEmpty(m_RedirectURL))
138 { 141 {
139 // Only try to fetch locally cached textures. Misses are redirected 142 // Only try to fetch locally cached textures. Misses are redirected
140 texture = m_assetService.GetCached(fullID); 143 texture = m_assetService.GetCached(fullID);
@@ -150,8 +153,9 @@ namespace OpenSim.Capabilities.Handlers
150 } 153 }
151 else 154 else
152 { 155 {
153 string textureUrl = REDIRECT_URL + textureID.ToString(); 156 string textureUrl = m_RedirectURL + textureID.ToString();
154 m_log.Debug("[GETTEXTURE]: Redirecting texture request to " + textureUrl); 157 m_log.Debug("[GETTEXTURE]: Redirecting texture request to " + textureUrl);
158 httpResponse.StatusCode = (int)OSHttpStatusCode.RedirectMovedPermanently;
155 httpResponse.RedirectLocation = textureUrl; 159 httpResponse.RedirectLocation = textureUrl;
156 return true; 160 return true;
157 } 161 }
diff --git a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs
index 71cf033..fa0b228 100644
--- a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs
+++ b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs
@@ -62,8 +62,10 @@ namespace OpenSim.Capabilities.Handlers
62 if (m_AssetService == null) 62 if (m_AssetService == null)
63 throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName)); 63 throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
64 64
65 string rurl = serverConfig.GetString("GetTextureRedirectURL");
66 ;
65 server.AddStreamHandler( 67 server.AddStreamHandler(
66 new GetTextureHandler("/CAPS/GetTexture/" /*+ UUID.Random() */, m_AssetService, "GetTexture", null)); 68 new GetTextureHandler("/CAPS/GetTexture/" /*+ UUID.Random() */, m_AssetService, "GetTexture", null, rurl));
67 } 69 }
68 } 70 }
69} \ No newline at end of file 71} \ No newline at end of file
diff --git a/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs b/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs
index d4d6d10..8ffafa4 100644
--- a/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs
+++ b/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Capabilities.Handlers.GetTexture.Tests
52 // Overkill - we only really need the asset service, not a whole scene. 52 // Overkill - we only really need the asset service, not a whole scene.
53 Scene scene = new SceneHelpers().SetupScene(); 53 Scene scene = new SceneHelpers().SetupScene();
54 54
55 GetTextureHandler handler = new GetTextureHandler(null, scene.AssetService, "TestGetTexture", null); 55 GetTextureHandler handler = new GetTextureHandler(null, scene.AssetService, "TestGetTexture", null, null);
56 TestOSHttpRequest req = new TestOSHttpRequest(); 56 TestOSHttpRequest req = new TestOSHttpRequest();
57 TestOSHttpResponse resp = new TestOSHttpResponse(); 57 TestOSHttpResponse resp = new TestOSHttpResponse();
58 req.Url = new Uri("http://localhost/?texture_id=00000000-0000-1111-9999-000000000012"); 58 req.Url = new Uri("http://localhost/?texture_id=00000000-0000-1111-9999-000000000012");