From fc84225038a44e114fe58e4b789b746c9b7a8338 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Wed, 16 Feb 2011 08:18:49 -0800
Subject: XFF capitalization strikes again -- this time in the XMLRPC method.
mantis #5386
---
OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Framework/Servers/HttpServer')
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 4c35132..1d05b02 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -785,7 +785,19 @@ namespace OpenSim.Framework.Servers.HttpServer
if (methodWasFound)
{
xmlRprcRequest.Params.Add(request.Url); // Param[2]
- xmlRprcRequest.Params.Add(request.Headers.Get("X-Forwarded-For")); // Param[3]
+
+ string xff = "X-Forwarded-For";
+ string xfflower = xff.ToLower();
+ foreach (string s in request.Headers.AllKeys)
+ {
+ if (s != null && s.Equals(xfflower))
+ {
+ xff = xfflower;
+ break;
+ }
+ }
+ xmlRprcRequest.Params.Add(request.Headers.Get(xff)); // Param[3]
+
try
{
--
cgit v1.1
From cee5e3e264a71861dd018ee9bad47e6ea2ac0338 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 14 Mar 2011 12:56:50 +0100
Subject: Up the timeout on slow requests to 3000 to stop console spam. Make
sure request method and target are reported correctly and drop the txn id as
it's empty 99% of the time.
---
.../Framework/Servers/HttpServer/BaseHttpServer.cs | 26 +++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Framework/Servers/HttpServer')
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 1d05b02..953ed85 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -378,6 +378,22 @@ namespace OpenSim.Framework.Servers.HttpServer
///
public virtual void HandleRequest(OSHttpRequest request, OSHttpResponse response)
{
+ if (request.HttpMethod == String.Empty) // Can't handle empty requests, not wasting a thread
+ {
+ try
+ {
+ SendHTML500(response);
+ }
+ catch
+ {
+ }
+
+ return;
+ }
+
+ string requestMethod = request.HttpMethod;
+ string uriString = request.RawUrl;
+
string reqnum = "unknown";
int tickstart = Environment.TickCount;
@@ -495,7 +511,7 @@ namespace OpenSim.Framework.Servers.HttpServer
request.InputStream.Close();
- // HTTP IN support. The script engine taes it from here
+ // HTTP IN support. The script engine takes it from here
// Nothing to worry about for us.
//
if (buffer == null)
@@ -609,9 +625,9 @@ namespace OpenSim.Framework.Servers.HttpServer
{
m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw ", e);
}
- catch (InvalidOperationException e)
+ catch (Exception e)
{
- m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}", e);
+ m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw " + e.ToString());
SendHTML500(response);
}
finally
@@ -619,9 +635,9 @@ namespace OpenSim.Framework.Servers.HttpServer
// Every month or so this will wrap and give bad numbers, not really a problem
// since its just for reporting, 200ms limit can be adjusted
int tickdiff = Environment.TickCount - tickstart;
- if (tickdiff > 500)
+ if (tickdiff > 3000)
m_log.InfoFormat(
- "[BASE HTTP SERVER]: slow request <{0}> for {1} took {2} ms", reqnum, request.RawUrl, tickdiff);
+ "[BASE HTTP SERVER]: slow {0} request for {1} from {2} took {3} ms", requestMethod, uriString, request.RemoteIPEndPoint.ToString(), tickdiff);
}
}
--
cgit v1.1
From aadd0e8d42b0a5b401cde9d4d3a56ce2e527201a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 16 Mar 2011 00:14:58 +0000
Subject: minor: bring comment into line with code reality
---
OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Framework/Servers/HttpServer')
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 953ed85..ccec9b7 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -633,7 +633,7 @@ namespace OpenSim.Framework.Servers.HttpServer
finally
{
// Every month or so this will wrap and give bad numbers, not really a problem
- // since its just for reporting, 200ms limit can be adjusted
+ // since its just for reporting, tickdiff limit can be adjusted
int tickdiff = Environment.TickCount - tickstart;
if (tickdiff > 3000)
m_log.InfoFormat(
--
cgit v1.1
From a3651eb5d0325807baa9a2bdc9a1bae8d413bc9f Mon Sep 17 00:00:00 2001
From: BlueWall
Date: Thu, 17 Mar 2011 05:48:42 -0400
Subject: Thanks Kevin Cozens for a patch that:
Fixes several spelling mistakes
---
OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Framework/Servers/HttpServer')
diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs
index 129a544..2c2b47d 100644
--- a/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs
+++ b/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs
@@ -83,7 +83,7 @@ namespace OpenSim.Framework.Servers.HttpServer
///
/// Regular expression used to match against path of the
/// incoming HTTP request. If you want to match any string
- /// either use '.*' or null. To match on the emtpy string use
+ /// either use '.*' or null. To match on the empty string use
/// '^$'.
///
public virtual Regex Path
--
cgit v1.1