aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-14 23:46:09 +0100
committerJustin Clark-Casey (justincc)2012-06-14 23:46:09 +0100
commit9825861f4ac8d78665c33e2630824d97b356e642 (patch)
tree104fe5efe6f71cc002d25cfc2d3f641aee908d69
parentFix a regression in BaseHttpServer.HandleXmlRpcRequests() from recent c6e3752 (diff)
downloadopensim-SC_OLD-9825861f4ac8d78665c33e2630824d97b356e642.zip
opensim-SC_OLD-9825861f4ac8d78665c33e2630824d97b356e642.tar.gz
opensim-SC_OLD-9825861f4ac8d78665c33e2630824d97b356e642.tar.bz2
opensim-SC_OLD-9825861f4ac8d78665c33e2630824d97b356e642.tar.xz
Shuffle "debug http" levels so that 1 and 2 now cause different levels of warn to be logged if we receive invalid xml for xmlrpc.
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs35
-rw-r--r--OpenSim/Region/Application/OpenSim.cs9
2 files changed, 32 insertions, 12 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 9064464..35a0be4 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -82,6 +82,11 @@ namespace OpenSim.Framework.Servers.HttpServer
82 /// <summary> 82 /// <summary>
83 /// Control the printing of certain debug messages. 83 /// Control the printing of certain debug messages.
84 /// </summary> 84 /// </summary>
85 /// <remarks>
86 /// If DebugLevel >= 1, then short warnings are logged when receiving bad input data.
87 /// If DebugLevel >= 2, then long warnings are logged when receiving bad input data.
88 /// If DebugLevel >= 3, then short notices about all incoming non-poll HTTP requests are logged.
89 /// </remarks>
85 public int DebugLevel { get; set; } 90 public int DebugLevel { get; set; }
86 91
87 public uint SSLPort 92 public uint SSLPort
@@ -450,7 +455,7 @@ namespace OpenSim.Framework.Servers.HttpServer
450 455
451 if (TryGetStreamHandler(handlerKey, out requestHandler)) 456 if (TryGetStreamHandler(handlerKey, out requestHandler))
452 { 457 {
453 if (DebugLevel >= 1) 458 if (DebugLevel >= 3)
454 m_log.DebugFormat( 459 m_log.DebugFormat(
455 "[BASE HTTP SERVER]: Found stream handler for {0} {1} {2} {3}", 460 "[BASE HTTP SERVER]: Found stream handler for {0} {1} {2} {3}",
456 request.HttpMethod, request.Url.PathAndQuery, requestHandler.Name, requestHandler.Description); 461 request.HttpMethod, request.Url.PathAndQuery, requestHandler.Name, requestHandler.Description);
@@ -531,7 +536,7 @@ namespace OpenSim.Framework.Servers.HttpServer
531 case null: 536 case null:
532 case "text/html": 537 case "text/html":
533 538
534 if (DebugLevel >= 1) 539 if (DebugLevel >= 3)
535 m_log.DebugFormat( 540 m_log.DebugFormat(
536 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}", 541 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
537 request.ContentType, request.HttpMethod, request.Url.PathAndQuery); 542 request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
@@ -543,7 +548,7 @@ namespace OpenSim.Framework.Servers.HttpServer
543 case "application/xml+llsd": 548 case "application/xml+llsd":
544 case "application/llsd+json": 549 case "application/llsd+json":
545 550
546 if (DebugLevel >= 1) 551 if (DebugLevel >= 3)
547 m_log.DebugFormat( 552 m_log.DebugFormat(
548 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}", 553 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
549 request.ContentType, request.HttpMethod, request.Url.PathAndQuery); 554 request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
@@ -564,7 +569,7 @@ namespace OpenSim.Framework.Servers.HttpServer
564 //m_log.Info("[Debug BASE HTTP SERVER]: Checking for LLSD Handler"); 569 //m_log.Info("[Debug BASE HTTP SERVER]: Checking for LLSD Handler");
565 if (DoWeHaveALLSDHandler(request.RawUrl)) 570 if (DoWeHaveALLSDHandler(request.RawUrl))
566 { 571 {
567 if (DebugLevel >= 1) 572 if (DebugLevel >= 3)
568 m_log.DebugFormat( 573 m_log.DebugFormat(
569 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}", 574 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
570 request.ContentType, request.HttpMethod, request.Url.PathAndQuery); 575 request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
@@ -574,7 +579,7 @@ namespace OpenSim.Framework.Servers.HttpServer
574 // m_log.DebugFormat("[BASE HTTP SERVER]: Checking for HTTP Handler for request {0}", request.RawUrl); 579 // m_log.DebugFormat("[BASE HTTP SERVER]: Checking for HTTP Handler for request {0}", request.RawUrl);
575 else if (DoWeHaveAHTTPHandler(request.RawUrl)) 580 else if (DoWeHaveAHTTPHandler(request.RawUrl))
576 { 581 {
577 if (DebugLevel >= 1) 582 if (DebugLevel >= 3)
578 m_log.DebugFormat( 583 m_log.DebugFormat(
579 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}", 584 "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
580 request.ContentType, request.HttpMethod, request.Url.PathAndQuery); 585 request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
@@ -583,8 +588,7 @@ namespace OpenSim.Framework.Servers.HttpServer
583 } 588 }
584 else 589 else
585 { 590 {
586 591 if (DebugLevel >= 3)
587 if (DebugLevel >= 1)
588 m_log.DebugFormat( 592 m_log.DebugFormat(
589 "[BASE HTTP SERVER]: Assuming a generic XMLRPC request for {0} {1}", 593 "[BASE HTTP SERVER]: Assuming a generic XMLRPC request for {0} {1}",
590 request.HttpMethod, request.Url.PathAndQuery); 594 request.HttpMethod, request.Url.PathAndQuery);
@@ -793,8 +797,23 @@ namespace OpenSim.Framework.Servers.HttpServer
793 { 797 {
794 xmlRprcRequest = (XmlRpcRequest) (new XmlRpcRequestDeserializer()).Deserialize(requestBody); 798 xmlRprcRequest = (XmlRpcRequest) (new XmlRpcRequestDeserializer()).Deserialize(requestBody);
795 } 799 }
796 catch (XmlException) 800 catch (XmlException e)
797 { 801 {
802 if (DebugLevel >= 1)
803 {
804 if (DebugLevel >= 2)
805 m_log.Warn(
806 string.Format(
807 "[BASE HTTP SERVER]: Got XMLRPC request with invalid XML from {0}. XML was '{1}'. Sending blank response. Exception ",
808 request.RemoteIPEndPoint, requestBody),
809 e);
810 else
811 {
812 m_log.WarnFormat(
813 "[BASE HTTP SERVER]: Got XMLRPC request with invalid XML from {0}, length {1}. Sending blank response.",
814 request.RemoteIPEndPoint, requestBody.Length);
815 }
816 }
798 } 817 }
799 818
800 if (xmlRprcRequest != null) 819 if (xmlRprcRequest != null)
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 57a3c69..96d41a4 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -250,10 +250,11 @@ namespace OpenSim
250 250
251 m_console.Commands.AddCommand("Comms", false, "debug http", 251 m_console.Commands.AddCommand("Comms", false, "debug http",
252 "debug http <level>", 252 "debug http <level>",
253 "Turn on inbound http request debugging for everything except the event queue (see debug eq).", 253 "Turn on inbound non-poll http request debugging for everything except the event queue (see debug eq).",
254 "If level >= 2 then the handler used to service the request is logged.\n" 254 "If level <= 0, then no extra logging is done.\n"
255 + "If level >= 1 then incoming HTTP requests are logged.\n" 255 + "If level >= 1, then short warnings are logged when receiving bad input data.\n"
256 + "If level <= 0 then no extra http logging is done.\n", 256 + "If level >= 2, then long warnings are logged when receiving bad input data.\n"
257 + "If level >= 3, then short notices about all incoming non-poll HTTP requests are logged.\n",
257 Debug); 258 Debug);
258 259
259 m_console.Commands.AddCommand("Comms", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); 260 m_console.Commands.AddCommand("Comms", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug);