diff --git a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs index 9982a0c321..bd91693241 100644 --- a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs @@ -661,7 +661,14 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp return response; } - public void HttpRequestHandler(UUID requestID, OSHttpRequest request) + private OSHttpResponse errorResponse(OSHttpRequest request, int error) + { + OSHttpResponse resp = new OSHttpResponse(request); + resp.StatusCode = error; + return resp; + } + + public OSHttpResponse HttpRequestHandler(UUID requestID, OSHttpRequest request) { lock (request) { @@ -669,7 +676,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp if(uri.Length < 45) { request.InputStream.Dispose(); - return; + return errorResponse(request, (int)HttpStatusCode.BadRequest); } try @@ -702,7 +709,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp { //m_log.Warn("[HttpRequestHandler]: http-in request failed; no such url: "+urlkey.ToString()); request.InputStream.Dispose(); - return; + return errorResponse(request, (int)HttpStatusCode.NotFound); } //for llGetHttpHeader support we need to store original URI here @@ -778,7 +785,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp url.engine.PostScriptEvent(url.itemID, "http_request", new Object[] { requestID.ToString(), request.HttpMethod, requestBody }); - return; + return null; } catch (Exception we) @@ -788,6 +795,8 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp m_log.Warn(we.Message); m_log.Warn(we.StackTrace); } + + return errorResponse(request, (int)HttpStatusCode.BadRequest); } }