aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers/MainServer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Servers/MainServer.cs')
-rw-r--r--OpenSim/Framework/Servers/MainServer.cs87
1 files changed, 65 insertions, 22 deletions
diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs
index 7402c73..b7a133e 100644
--- a/OpenSim/Framework/Servers/MainServer.cs
+++ b/OpenSim/Framework/Servers/MainServer.cs
@@ -48,9 +48,11 @@ namespace OpenSim.Framework.Servers
48 /// Control the printing of certain debug messages. 48 /// Control the printing of certain debug messages.
49 /// </summary> 49 /// </summary>
50 /// <remarks> 50 /// <remarks>
51 /// If DebugLevel >= 1, then short warnings are logged when receiving bad input data. 51 /// If DebugLevel >= 1 then short warnings are logged when receiving bad input data.
52 /// If DebugLevel >= 2, then long warnings are logged when receiving bad input data. 52 /// If DebugLevel >= 2 then long warnings are logged when receiving bad input data.
53 /// If DebugLevel >= 3, then short notices about all incoming non-poll HTTP requests are logged. 53 /// If DebugLevel >= 3 then short notices about all incoming non-poll HTTP requests are logged.
54 /// If DebugLevel >= 4 then the start of the body of incoming non-poll HTTP requests will be logged.
55 /// If DebugLevel >= 5 then the entire body of incoming non-poll HTTP requests will be logged.
54 /// </remarks> 56 /// </remarks>
55 public static int DebugLevel 57 public static int DebugLevel
56 { 58 {
@@ -102,7 +104,6 @@ namespace OpenSim.Framework.Servers
102 get { return new Dictionary<uint, BaseHttpServer>(m_Servers); } 104 get { return new Dictionary<uint, BaseHttpServer>(m_Servers); }
103 } 105 }
104 106
105
106 public static void RegisterHttpConsoleCommands(ICommandConsole console) 107 public static void RegisterHttpConsoleCommands(ICommandConsole console)
107 { 108 {
108 console.Commands.AddCommand( 109 console.Commands.AddCommand(
@@ -111,15 +112,18 @@ namespace OpenSim.Framework.Servers
111 "Show all registered http handlers", HandleShowHttpHandlersCommand); 112 "Show all registered http handlers", HandleShowHttpHandlersCommand);
112 113
113 console.Commands.AddCommand( 114 console.Commands.AddCommand(
114 "Debug", false, "debug http", "debug http [<level>]", 115 "Debug", false, "debug http", "debug http <in|out|all> [<level>]",
115 "Turn on inbound non-poll http request debugging.", 116 "Turn on http request logging.",
116 "If level <= 0, then no extra logging is done.\n" 117 "If in or all and\n"
117 + "If level >= 1, then short warnings are logged when receiving bad input data.\n" 118 + " level <= 0, then no extra logging is done.\n"
118 + "If level >= 2, then long warnings are logged when receiving bad input data.\n" 119 + " level >= 1, then short warnings are logged when receiving bad input data.\n"
119 + "If level >= 3, then short notices about all incoming non-poll HTTP requests are logged.\n" 120 + " level >= 2, then long warnings are logged when receiving bad input data.\n"
120 + "If level >= 4, then a sample from the beginning of the incoming data is logged.\n" 121 + " level >= 3, then short notices about all incoming non-poll HTTP requests are logged.\n"
121 + "If level >= 5, then the entire incoming data is logged.\n" 122 + " level >= 4, then a sample from the beginning of the incoming data is logged.\n"
122 + "If no level is specified then the current level is returned.", 123 + " level >= 5, then the entire incoming data is logged.\n"
124 + " no level is specified then the current level is returned.\n\n"
125 + "If out or all and\n"
126 + " level >= 3. then short notices about all outgoing requests going through WebUtil are logged.\n",
123 HandleDebugHttpCommand); 127 HandleDebugHttpCommand);
124 } 128 }
125 129
@@ -127,24 +131,63 @@ namespace OpenSim.Framework.Servers
127 /// Turn on some debugging values for OpenSim. 131 /// Turn on some debugging values for OpenSim.
128 /// </summary> 132 /// </summary>
129 /// <param name="args"></param> 133 /// <param name="args"></param>
130 private static void HandleDebugHttpCommand(string module, string[] args) 134 private static void HandleDebugHttpCommand(string module, string[] cmdparams)
131 { 135 {
132 if (args.Length == 3) 136 if (cmdparams.Length < 3)
133 { 137 {
138 MainConsole.Instance.Output("Usage: debug http <in|out|all> 0..5");
139 return;
140 }
141
142 bool inReqs = false;
143 bool outReqs = false;
144 bool allReqs = false;
145
146 string subCommand = cmdparams[2];
147
148 if (subCommand == "in")
149 inReqs = true;
150 else if (subCommand == "out")
151 outReqs = true;
152 else
153 allReqs = true;
154
155 if (cmdparams.Length >= 4)
156 {
157 string rawNewDebug = cmdparams[3];
134 int newDebug; 158 int newDebug;
135 if (int.TryParse(args[2], out newDebug)) 159
160 if (!int.TryParse(rawNewDebug, out newDebug))
161 {
162 MainConsole.Instance.OutputFormat("{0} is not a valid debug level", rawNewDebug);
163 return;
164 }
165
166 if (newDebug < 0 || newDebug > 5)
167 {
168 MainConsole.Instance.OutputFormat("{0} is outside the valid debug level range of 0..5", newDebug);
169 return;
170 }
171
172 if (allReqs || inReqs)
136 { 173 {
137 MainServer.DebugLevel = newDebug; 174 MainServer.DebugLevel = newDebug;
138 MainConsole.Instance.OutputFormat("Debug http level set to {0}", newDebug); 175 MainConsole.Instance.OutputFormat("In debug level set to {0}", newDebug);
176 }
177
178 if (allReqs || outReqs)
179 {
180 WebUtil.DebugLevel = newDebug;
181 MainConsole.Instance.OutputFormat("Out debug level set to {0}", newDebug);
139 } 182 }
140 }
141 else if (args.Length == 2)
142 {
143 MainConsole.Instance.OutputFormat("Current debug http level is {0}", MainServer.DebugLevel);
144 } 183 }
145 else 184 else
146 { 185 {
147 MainConsole.Instance.Output("Usage: debug http 0..5"); 186 if (allReqs || inReqs)
187 MainConsole.Instance.OutputFormat("Current in debug level is {0}", MainServer.DebugLevel);
188
189 if (allReqs || outReqs)
190 MainConsole.Instance.OutputFormat("Current out debug level is {0}", WebUtil.DebugLevel);
148 } 191 }
149 } 192 }
150 193