From c1a3185df3ebb3e8254bc6f865607a7f9952b256 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 1 Mar 2021 18:49:30 +0200 Subject: [PATCH] HTTP Request Handlers: log the responses (previously we only logged the requests). Note that this is separate from WebUtil, which we use to *send* HTTP requests: that class always logged both the request and the response. In contrast, this commit handles HTTP requests that are sent to OpenSim's web server. --- .../Servers/HttpServer/BaseHttpServer.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index dfa54312b0..b7f5808c17 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -650,6 +650,8 @@ namespace OpenSim.Framework.Servers.HttpServer IRequestHandler requestHandler = null; + byte[] responseData = null; + try { // OpenSim.Framework.WebUtil.OSHeaderRequestID @@ -671,6 +673,7 @@ namespace OpenSim.Framework.Servers.HttpServer request.InputStream.Dispose(); requestEndTick = Environment.TickCount; + responseData = response.RawBuffer; response.Send(); return; } @@ -692,6 +695,7 @@ namespace OpenSim.Framework.Servers.HttpServer request.InputStream.Dispose(); requestEndTick = Environment.TickCount; + responseData = response.RawBuffer; response.Send(); return; } @@ -736,6 +740,7 @@ namespace OpenSim.Framework.Servers.HttpServer request.InputStream.Dispose(); requestEndTick = Environment.TickCount; + responseData = response.RawBuffer; response.Send(); return; } @@ -752,6 +757,7 @@ namespace OpenSim.Framework.Servers.HttpServer request.InputStream.Dispose(); requestEndTick = Environment.TickCount; + responseData = response.RawBuffer; response.Send(); return; } @@ -901,6 +907,7 @@ namespace OpenSim.Framework.Servers.HttpServer requestEndTick = Environment.TickCount; buffer = null; + responseData = response.RawBuffer; response.Send(); } catch (SocketException e) @@ -924,6 +931,7 @@ namespace OpenSim.Framework.Servers.HttpServer try { response.StatusCode =(int)HttpStatusCode.InternalServerError; + responseData = response.RawBuffer; response.Send(); } catch {} @@ -954,6 +962,19 @@ namespace OpenSim.Framework.Servers.HttpServer Port, tickdiff); } + + if ((DebugLevel >= 5) && (responseData != null)) + { + string output = Encoding.UTF8.GetString(responseData); + if (DebugLevel == 5) + { + if (output.Length > WebUtil.MaxRequestDiagLength) + output = output.Substring(0, WebUtil.MaxRequestDiagLength) + "..."; + } + m_log.DebugFormat("[LOGHTTP] RESPONSE {0}: {1}", RequestNumber, output); + } + + responseData = null; } }