diff options
Diffstat (limited to 'OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs')
-rw-r--r-- | OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs index fd4c295..c022e09 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs | |||
@@ -239,14 +239,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
239 | Rest.Prefix = Prefix; | 239 | Rest.Prefix = Prefix; |
240 | Rest.GodKey = GodKey; | 240 | Rest.GodKey = GodKey; |
241 | 241 | ||
242 | Rest.Authenticate = Rest.Config.GetBoolean("authenticate",true); | 242 | Rest.Authenticate = Rest.Config.GetBoolean("authenticate", Rest.Authenticate); |
243 | Rest.Secure = Rest.Config.GetBoolean("secured",true); | 243 | Rest.Scheme = Rest.Config.GetString("auth-scheme", Rest.Scheme); |
244 | Rest.ExtendedEscape = Rest.Config.GetBoolean("extended-escape",true); | 244 | Rest.Secure = Rest.Config.GetBoolean("secured", Rest.Secure); |
245 | Rest.Realm = Rest.Config.GetString("realm","OpenSim REST"); | 245 | Rest.ExtendedEscape = Rest.Config.GetBoolean("extended-escape", Rest.ExtendedEscape); |
246 | Rest.DumpAsset = Rest.Config.GetBoolean("dump-asset",false); | 246 | Rest.Realm = Rest.Config.GetString("realm", Rest.Realm); |
247 | Rest.Fill = Rest.Config.GetBoolean("path-fill",true); | 247 | Rest.DumpAsset = Rest.Config.GetBoolean("dump-asset", Rest.DumpAsset); |
248 | Rest.DumpLineSize = Rest.Config.GetInt("dump-line-size",32); | 248 | Rest.Fill = Rest.Config.GetBoolean("path-fill", Rest.Fill); |
249 | Rest.FlushEnabled = Rest.Config.GetBoolean("flush-on-error",true); | 249 | Rest.DumpLineSize = Rest.Config.GetInt("dump-line-size", Rest.DumpLineSize); |
250 | Rest.FlushEnabled = Rest.Config.GetBoolean("flush-on-error", Rest.FlushEnabled); | ||
251 | |||
252 | // Note: Odd spacing is required in the following strings | ||
250 | 253 | ||
251 | Rest.Log.InfoFormat("{0} Authentication is {1}required", MsgId, | 254 | Rest.Log.InfoFormat("{0} Authentication is {1}required", MsgId, |
252 | (Rest.Authenticate ? "" : "not ")); | 255 | (Rest.Authenticate ? "" : "not ")); |
@@ -374,13 +377,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
374 | 377 | ||
375 | string path = request.RawUrl.ToLower(); | 378 | string path = request.RawUrl.ToLower(); |
376 | 379 | ||
377 | Rest.Log.DebugFormat("{0} Match ENTRY", MsgId); | 380 | // Rest.Log.DebugFormat("{0} Match ENTRY", MsgId); |
378 | 381 | ||
379 | try | 382 | try |
380 | { | 383 | { |
381 | foreach (string key in pathHandlers.Keys) | 384 | foreach (string key in pathHandlers.Keys) |
382 | { | 385 | { |
383 | Rest.Log.DebugFormat("{0} Match testing {1} against agent prefix <{2}>", MsgId, path, key); | 386 | // Rest.Log.DebugFormat("{0} Match testing {1} against agent prefix <{2}>", MsgId, path, key); |
384 | 387 | ||
385 | // Note that Match will not necessarily find the handler that will | 388 | // Note that Match will not necessarily find the handler that will |
386 | // actually be used - it does no test for the "closest" fit. It | 389 | // actually be used - it does no test for the "closest" fit. It |
@@ -388,7 +391,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
388 | 391 | ||
389 | if (path.StartsWith(key)) | 392 | if (path.StartsWith(key)) |
390 | { | 393 | { |
391 | Rest.Log.DebugFormat("{0} Matched prefix <{1}>", MsgId, key); | 394 | // Rest.Log.DebugFormat("{0} Matched prefix <{1}>", MsgId, key); |
392 | 395 | ||
393 | // This apparently odd evaluation is needed to prevent a match | 396 | // This apparently odd evaluation is needed to prevent a match |
394 | // on anything other than a URI token boundary. Otherwise we | 397 | // on anything other than a URI token boundary. Otherwise we |
@@ -404,7 +407,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
404 | 407 | ||
405 | foreach (string key in streamHandlers.Keys) | 408 | foreach (string key in streamHandlers.Keys) |
406 | { | 409 | { |
407 | Rest.Log.DebugFormat("{0} Match testing {1} against stream prefix <{2}>", MsgId, path, key); | 410 | // Rest.Log.DebugFormat("{0} Match testing {1} against stream prefix <{2}>", MsgId, path, key); |
408 | 411 | ||
409 | // Note that Match will not necessarily find the handler that will | 412 | // Note that Match will not necessarily find the handler that will |
410 | // actually be used - it does no test for the "closest" fit. It | 413 | // actually be used - it does no test for the "closest" fit. It |
@@ -412,7 +415,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
412 | 415 | ||
413 | if (path.StartsWith(key)) | 416 | if (path.StartsWith(key)) |
414 | { | 417 | { |
415 | Rest.Log.DebugFormat("{0} Matched prefix <{1}>", MsgId, key); | 418 | // Rest.Log.DebugFormat("{0} Matched prefix <{1}>", MsgId, key); |
416 | 419 | ||
417 | // This apparently odd evaluation is needed to prevent a match | 420 | // This apparently odd evaluation is needed to prevent a match |
418 | // on anything other than a URI token boundary. Otherwise we | 421 | // on anything other than a URI token boundary. Otherwise we |
@@ -434,7 +437,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
434 | 437 | ||
435 | /// <summary> | 438 | /// <summary> |
436 | /// This is called by the HTTP server once the handler has indicated | 439 | /// This is called by the HTTP server once the handler has indicated |
437 | /// that t is able to handle the request. | 440 | /// that it is able to handle the request. |
438 | /// Preconditions: | 441 | /// Preconditions: |
439 | /// [1] request != null and is a valid request object | 442 | /// [1] request != null and is a valid request object |
440 | /// [2] response != null and is a valid response object | 443 | /// [2] response != null and is a valid response object |
@@ -474,7 +477,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
474 | { | 477 | { |
475 | // A raw exception indicates that something we weren't expecting has | 478 | // A raw exception indicates that something we weren't expecting has |
476 | // happened. This should always reflect a shortcoming in the plugin, | 479 | // happened. This should always reflect a shortcoming in the plugin, |
477 | // or a failure to satisfy the preconditions. | 480 | // or a failure to satisfy the preconditions. It should not reflect |
481 | // an error in the request itself. Under such circumstances the state | ||
482 | // of the request cannot be determined and we are obliged to mark it | ||
483 | // as 'handled'. | ||
484 | |||
478 | Rest.Log.ErrorFormat("{0} Plugin error: {1}", MsgId, e.Message); | 485 | Rest.Log.ErrorFormat("{0} Plugin error: {1}", MsgId, e.Message); |
479 | handled = true; | 486 | handled = true; |
480 | } | 487 | } |
@@ -497,7 +504,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
497 | { | 504 | { |
498 | RequestData rdata = new RequestData(request, response, String.Empty); | 505 | RequestData rdata = new RequestData(request, response, String.Empty); |
499 | 506 | ||
500 | string bestMatch = null; | 507 | string bestMatch = String.Empty; |
501 | string path = String.Format("{0}:{1}", rdata.method, rdata.path).ToLower(); | 508 | string path = String.Format("{0}:{1}", rdata.method, rdata.path).ToLower(); |
502 | 509 | ||
503 | Rest.Log.DebugFormat("{0} Checking for stream handler for <{1}>", MsgId, path); | 510 | Rest.Log.DebugFormat("{0} Checking for stream handler for <{1}>", MsgId, path); |
@@ -511,7 +518,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
511 | { | 518 | { |
512 | if (path.StartsWith(pattern)) | 519 | if (path.StartsWith(pattern)) |
513 | { | 520 | { |
514 | if (String.IsNullOrEmpty(bestMatch) || pattern.Length > bestMatch.Length) | 521 | if (pattern.Length > bestMatch.Length) |
515 | { | 522 | { |
516 | bestMatch = pattern; | 523 | bestMatch = pattern; |
517 | } | 524 | } |
@@ -520,7 +527,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
520 | 527 | ||
521 | // Handle using the best match available | 528 | // Handle using the best match available |
522 | 529 | ||
523 | if (!String.IsNullOrEmpty(bestMatch)) | 530 | if (bestMatch.Length > 0) |
524 | { | 531 | { |
525 | Rest.Log.DebugFormat("{0} Stream-based handler matched with <{1}>", MsgId, bestMatch); | 532 | Rest.Log.DebugFormat("{0} Stream-based handler matched with <{1}>", MsgId, bestMatch); |
526 | RestStreamHandler handler = streamHandlers[bestMatch]; | 533 | RestStreamHandler handler = streamHandlers[bestMatch]; |