aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Capabilities/Handlers
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Capabilities/Handlers')
-rw-r--r--OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs6
-rw-r--r--OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs63
-rw-r--r--OpenSim/Capabilities/Handlers/UploadBakedTexture/UploadBakedTextureHandler.cs18
-rw-r--r--OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs2
4 files changed, 73 insertions, 16 deletions
diff --git a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
index 7ab30ce..ae95821 100644
--- a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
+++ b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
@@ -64,7 +64,7 @@ namespace OpenSim.Capabilities.Handlers
64 m_assetService = assService; 64 m_assetService = assService;
65 } 65 }
66 66
67 public override byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) 67 public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
68 { 68 {
69 // Try to parse the texture ID from the request URL 69 // Try to parse the texture ID from the request URL
70 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query); 70 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
@@ -127,7 +127,7 @@ namespace OpenSim.Capabilities.Handlers
127 /// <param name="textureID"></param> 127 /// <param name="textureID"></param>
128 /// <param name="format"></param> 128 /// <param name="format"></param>
129 /// <returns>False for "caller try another codec"; true otherwise</returns> 129 /// <returns>False for "caller try another codec"; true otherwise</returns>
130 private bool FetchTexture(OSHttpRequest httpRequest, OSHttpResponse httpResponse, UUID textureID, string format) 130 private bool FetchTexture(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, UUID textureID, string format)
131 { 131 {
132// m_log.DebugFormat("[GETTEXTURE]: {0} with requested format {1}", textureID, format); 132// m_log.DebugFormat("[GETTEXTURE]: {0} with requested format {1}", textureID, format);
133 AssetBase texture; 133 AssetBase texture;
@@ -211,7 +211,7 @@ namespace OpenSim.Capabilities.Handlers
211 return true; 211 return true;
212 } 212 }
213 213
214 private void WriteTextureData(OSHttpRequest request, OSHttpResponse response, AssetBase texture, string format) 214 private void WriteTextureData(IOSHttpRequest request, IOSHttpResponse response, AssetBase texture, string format)
215 { 215 {
216 string range = request.Headers.GetOne("Range"); 216 string range = request.Headers.GetOne("Range");
217 217
diff --git a/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs b/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs
new file mode 100644
index 0000000..fd152c3
--- /dev/null
+++ b/OpenSim/Capabilities/Handlers/GetTexture/Tests/GetTextureHandlerTests.cs
@@ -0,0 +1,63 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Net;
31using log4net;
32using log4net.Config;
33using NUnit.Framework;
34using OpenMetaverse;
35using OpenSim.Capabilities.Handlers;
36using OpenSim.Framework;
37using OpenSim.Framework.Servers.HttpServer;
38using OpenSim.Region.Framework.Scenes;
39using OpenSim.Tests.Common;
40using OpenSim.Tests.Common.Mock;
41
42namespace OpenSim.Capabilities.Handlers.GetTexture.Tests
43{
44 [TestFixture]
45 public class GetTextureHandlerTests
46 {
47 [Test]
48 public void TestTextureNotFound()
49 {
50 TestHelpers.InMethod();
51
52 // Overkill - we only really need the asset service, not a whole scene.
53 Scene scene = SceneHelpers.SetupScene();
54
55 GetTextureHandler handler = new GetTextureHandler(null, scene.AssetService);
56 TestOSHttpRequest req = new TestOSHttpRequest();
57 TestOSHttpResponse resp = new TestOSHttpResponse();
58 req.Url = new Uri("http://localhost/?texture_id=00000000-0000-1111-9999-000000000012");
59 handler.Handle(null, null, req, resp);
60 Assert.That(resp.StatusCode, Is.EqualTo((int)System.Net.HttpStatusCode.NotFound));
61 }
62 }
63} \ No newline at end of file
diff --git a/OpenSim/Capabilities/Handlers/UploadBakedTexture/UploadBakedTextureHandler.cs b/OpenSim/Capabilities/Handlers/UploadBakedTexture/UploadBakedTextureHandler.cs
index b89fd6a..b7ca703 100644
--- a/OpenSim/Capabilities/Handlers/UploadBakedTexture/UploadBakedTextureHandler.cs
+++ b/OpenSim/Capabilities/Handlers/UploadBakedTexture/UploadBakedTextureHandler.cs
@@ -73,12 +73,10 @@ namespace OpenSim.Capabilities.Handlers
73 /// <param name="httpResponse"></param> 73 /// <param name="httpResponse"></param>
74 /// <returns>The upload response if the request is successful, null otherwise.</returns> 74 /// <returns>The upload response if the request is successful, null otherwise.</returns>
75 public string UploadBakedTexture( 75 public string UploadBakedTexture(
76 string request, string path, string param, OSHttpRequest httpRequest, OSHttpResponse httpResponse) 76 string request, string path, string param, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
77 { 77 {
78 try 78 try
79 { 79 {
80// m_log.Debug("[CAPS]: UploadBakedTexture Request in region: " + m_regionName);
81
82 string capsBase = "/CAPS/" + m_HostCapsObj.CapsObjectPath; 80 string capsBase = "/CAPS/" + m_HostCapsObj.CapsObjectPath;
83 string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); 81 string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
84 82
@@ -106,7 +104,7 @@ namespace OpenSim.Capabilities.Handlers
106 } 104 }
107 catch (Exception e) 105 catch (Exception e)
108 { 106 {
109 m_log.Error("[UPLOAD BAKED TEXTURE HANDLER]: " + e.ToString()); 107 m_log.Error("[CAPS]: " + e.ToString());
110 } 108 }
111 109
112 return null; 110 return null;
@@ -132,8 +130,6 @@ namespace OpenSim.Capabilities.Handlers
132 130
133 class BakedTextureUploader 131 class BakedTextureUploader
134 { 132 {
135// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
136
137 public event Action<UUID, byte[]> OnUpLoad; 133 public event Action<UUID, byte[]> OnUpLoad;
138 134
139 private string uploaderPath = String.Empty; 135 private string uploaderPath = String.Empty;
@@ -158,12 +154,10 @@ namespace OpenSim.Capabilities.Handlers
158 public string uploaderCaps(byte[] data, string path, string param) 154 public string uploaderCaps(byte[] data, string path, string param)
159 { 155 {
160 Action<UUID, byte[]> handlerUpLoad = OnUpLoad; 156 Action<UUID, byte[]> handlerUpLoad = OnUpLoad;
161
162 // Don't do this asynchronously, otherwise it's possible for the client to send set appearance information
163 // on another thread which might send out avatar updates before the asset has been put into the asset
164 // service.
165 if (handlerUpLoad != null) 157 if (handlerUpLoad != null)
166 handlerUpLoad(newAssetID, data); 158 {
159 Util.FireAndForget(delegate(object o) { handlerUpLoad(newAssetID, data); });
160 }
167 161
168 string res = String.Empty; 162 string res = String.Empty;
169 LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); 163 LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete();
@@ -175,7 +169,7 @@ namespace OpenSim.Capabilities.Handlers
175 169
176 httpListener.RemoveStreamHandler("POST", uploaderPath); 170 httpListener.RemoveStreamHandler("POST", uploaderPath);
177 171
178// m_log.DebugFormat("[BAKED TEXTURE UPLOADER]: baked texture upload completed for {0}", newAssetID); 172 // m_log.InfoFormat("[CAPS] baked texture upload completed for {0}",newAssetID);
179 173
180 return res; 174 return res;
181 } 175 }
diff --git a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
index 2dade5b..a086c0e 100644
--- a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
+++ b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
@@ -57,7 +57,7 @@ namespace OpenSim.Capabilities.Handlers
57 m_LibraryService = libService; 57 m_LibraryService = libService;
58 } 58 }
59 59
60 public string FetchInventoryDescendentsRequest(string request, string path, string param, OSHttpRequest httpRequest, OSHttpResponse httpResponse) 60 public string FetchInventoryDescendentsRequest(string request, string path, string param, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
61 { 61 {
62// lock (m_fetchLock) 62// lock (m_fetchLock)
63// { 63// {