Browse Source

let urlmodule pool request do some work ( missing from last commit)

UbitUmarov 3 năm trước cách đây
mục cha
commit
4f4a48cf60
1 tập tin đã thay đổi với 13 bổ sung4 xóa
  1. 13 4
      OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs

+ 13 - 4
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);
             }
         }