aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs77
-rw-r--r--OpenSim/Services/Connectors/Grid/GridServiceConnector.cs101
2 files changed, 174 insertions, 4 deletions
diff --git a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
index d99b791..1601575 100644
--- a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
@@ -103,6 +103,12 @@ namespace OpenSim.Server.Handlers.Grid
103 case "get_region_range": 103 case "get_region_range":
104 return GetRegionRange(request); 104 return GetRegionRange(request);
105 105
106 case "get_default_regions":
107 return GetDefaultRegions(request);
108
109 case "get_fallback_regions":
110 return GetFallbackRegions(request);
111
106 } 112 }
107 m_log.DebugFormat("[GRID HANDLER]: unknown method {0} request {1}", method.Length, method); 113 m_log.DebugFormat("[GRID HANDLER]: unknown method {0} request {1}", method.Length, method);
108 } 114 }
@@ -404,6 +410,77 @@ namespace OpenSim.Server.Handlers.Grid
404 return encoding.GetBytes(xmlString); 410 return encoding.GetBytes(xmlString);
405 } 411 }
406 412
413 byte[] GetDefaultRegions(Dictionary<string, object> request)
414 {
415 //m_log.DebugFormat("[GRID HANDLER]: GetDefaultRegions");
416 UUID scopeID = UUID.Zero;
417 if (request.ContainsKey("SCOPEID"))
418 UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
419 else
420 m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get region range");
421
422 List<GridRegion> rinfos = m_GridService.GetDefaultRegions(scopeID);
423
424 Dictionary<string, object> result = new Dictionary<string, object>();
425 if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0)))
426 result["result"] = "null";
427 else
428 {
429 int i = 0;
430 foreach (GridRegion rinfo in rinfos)
431 {
432 Dictionary<string, object> rinfoDict = rinfo.ToKeyValuePairs();
433 result["region" + i] = rinfoDict;
434 i++;
435 }
436 }
437 string xmlString = ServerUtils.BuildXmlResponse(result);
438 //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
439 UTF8Encoding encoding = new UTF8Encoding();
440 return encoding.GetBytes(xmlString);
441 }
442
443 byte[] GetFallbackRegions(Dictionary<string, object> request)
444 {
445 //m_log.DebugFormat("[GRID HANDLER]: GetRegionRange");
446 UUID scopeID = UUID.Zero;
447 if (request.ContainsKey("SCOPEID"))
448 UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
449 else
450 m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get fallback regions");
451
452 int x = 0, y = 0;
453 if (request.ContainsKey("X"))
454 Int32.TryParse(request["X"].ToString(), out x);
455 else
456 m_log.WarnFormat("[GRID HANDLER]: no X in request to get fallback regions");
457 if (request.ContainsKey("Y"))
458 Int32.TryParse(request["Y"].ToString(), out y);
459 else
460 m_log.WarnFormat("[GRID HANDLER]: no Y in request to get fallback regions");
461
462
463 List<GridRegion> rinfos = m_GridService.GetFallbackRegions(scopeID, x, y);
464
465 Dictionary<string, object> result = new Dictionary<string, object>();
466 if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0)))
467 result["result"] = "null";
468 else
469 {
470 int i = 0;
471 foreach (GridRegion rinfo in rinfos)
472 {
473 Dictionary<string, object> rinfoDict = rinfo.ToKeyValuePairs();
474 result["region" + i] = rinfoDict;
475 i++;
476 }
477 }
478 string xmlString = ServerUtils.BuildXmlResponse(result);
479 //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
480 UTF8Encoding encoding = new UTF8Encoding();
481 return encoding.GetBytes(xmlString);
482 }
483
407 #endregion 484 #endregion
408 485
409 #region Misc 486 #region Misc
diff --git a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
index 7f1f2fd..cf112e1 100644
--- a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
@@ -448,21 +448,114 @@ namespace OpenSim.Services.Connectors
448 return rinfos; 448 return rinfos;
449 } 449 }
450 450
451 #endregion
452
453 public List<GridRegion> GetDefaultRegions(UUID scopeID) 451 public List<GridRegion> GetDefaultRegions(UUID scopeID)
454 { 452 {
455 return null; 453 Dictionary<string, object> sendData = new Dictionary<string, object>();
454
455 sendData["SCOPEID"] = scopeID.ToString();
456
457 sendData["METHOD"] = "get_default_regions";
458
459 List<GridRegion> rinfos = new List<GridRegion>();
460 string reply = string.Empty;
461 try
462 {
463 reply = SynchronousRestFormsRequester.MakeRequest("POST",
464 m_ServerURI + "/grid",
465 ServerUtils.BuildQueryString(sendData));
466
467 //m_log.DebugFormat("[GRID CONNECTOR]: reply was {0}", reply);
468 }
469 catch (Exception e)
470 {
471 m_log.DebugFormat("[GRID CONNECTOR]: Exception when contacting grid server: {0}", e.Message);
472 return rinfos;
473 }
474
475 if (reply != string.Empty)
476 {
477 Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply);
478
479 if (replyData != null)
480 {
481 Dictionary<string, object>.ValueCollection rinfosList = replyData.Values;
482 foreach (object r in rinfosList)
483 {
484 if (r is Dictionary<string, object>)
485 {
486 GridRegion rinfo = new GridRegion((Dictionary<string, object>)r);
487 rinfos.Add(rinfo);
488 }
489 }
490 }
491 else
492 m_log.DebugFormat("[GRID CONNECTOR]: GetDefaultRegions {0} received null response",
493 scopeID);
494 }
495 else
496 m_log.DebugFormat("[GRID CONNECTOR]: GetDefaultRegions received null reply");
497
498 return rinfos;
456 } 499 }
457 500
458 public List<GridRegion> GetFallbackRegions(UUID scopeID, int x, int y) 501 public List<GridRegion> GetFallbackRegions(UUID scopeID, int x, int y)
459 { 502 {
460 return null; 503 Dictionary<string, object> sendData = new Dictionary<string, object>();
504
505 sendData["SCOPEID"] = scopeID.ToString();
506 sendData["X"] = x.ToString();
507 sendData["Y"] = y.ToString();
508
509 sendData["METHOD"] = "get_fallback_regions";
510
511 List<GridRegion> rinfos = new List<GridRegion>();
512 string reply = string.Empty;
513 try
514 {
515 reply = SynchronousRestFormsRequester.MakeRequest("POST",
516 m_ServerURI + "/grid",
517 ServerUtils.BuildQueryString(sendData));
518
519 //m_log.DebugFormat("[GRID CONNECTOR]: reply was {0}", reply);
520 }
521 catch (Exception e)
522 {
523 m_log.DebugFormat("[GRID CONNECTOR]: Exception when contacting grid server: {0}", e.Message);
524 return rinfos;
525 }
526
527 if (reply != string.Empty)
528 {
529 Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply);
530
531 if (replyData != null)
532 {
533 Dictionary<string, object>.ValueCollection rinfosList = replyData.Values;
534 foreach (object r in rinfosList)
535 {
536 if (r is Dictionary<string, object>)
537 {
538 GridRegion rinfo = new GridRegion((Dictionary<string, object>)r);
539 rinfos.Add(rinfo);
540 }
541 }
542 }
543 else
544 m_log.DebugFormat("[GRID CONNECTOR]: GetFallbackRegions {0}, {1}-{2} received null response",
545 scopeID, x, y);
546 }
547 else
548 m_log.DebugFormat("[GRID CONNECTOR]: GetFallbackRegions received null reply");
549
550 return rinfos;
461 } 551 }
462 552
463 public int GetRegionFlags(UUID scopeID, UUID regionID) 553 public int GetRegionFlags(UUID scopeID, UUID regionID)
464 { 554 {
465 return 0; 555 return 0;
466 } 556 }
557
558 #endregion
559
467 } 560 }
468} 561}