diff options
Diffstat (limited to 'OpenSim/Capabilities')
5 files changed, 74 insertions, 17 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 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Net; | ||
31 | using log4net; | ||
32 | using log4net.Config; | ||
33 | using NUnit.Framework; | ||
34 | using OpenMetaverse; | ||
35 | using OpenSim.Capabilities.Handlers; | ||
36 | using OpenSim.Framework; | ||
37 | using OpenSim.Framework.Servers.HttpServer; | ||
38 | using OpenSim.Region.Framework.Scenes; | ||
39 | using OpenSim.Tests.Common; | ||
40 | using OpenSim.Tests.Common.Mock; | ||
41 | |||
42 | namespace 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 | // { |
diff --git a/OpenSim/Capabilities/LLSDStreamHandler.cs b/OpenSim/Capabilities/LLSDStreamHandler.cs index 7aaa994..c7c1fc9 100644 --- a/OpenSim/Capabilities/LLSDStreamHandler.cs +++ b/OpenSim/Capabilities/LLSDStreamHandler.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Framework.Capabilities | |||
45 | } | 45 | } |
46 | 46 | ||
47 | public override byte[] Handle(string path, Stream request, | 47 | public override byte[] Handle(string path, Stream request, |
48 | OSHttpRequest httpRequest, OSHttpResponse httpResponse) | 48 | IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) |
49 | { | 49 | { |
50 | //Encoding encoding = Util.UTF8; | 50 | //Encoding encoding = Util.UTF8; |
51 | //StreamReader streamReader = new StreamReader(request, false); | 51 | //StreamReader streamReader = new StreamReader(request, false); |