diff options
author | Justin Clark-Casey (justincc) | 2013-09-02 17:27:45 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-09-04 00:46:26 +0100 |
commit | 8b7bcc8346f5f2a163278c5f5a15613c9b44a551 (patch) | |
tree | e57f88a7f7fd2021097f1fbc93e8e620cace92fe /OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs | |
parent | Fix exception thrown after a region has been restarted through scheduling. (diff) | |
download | opensim-SC_OLD-8b7bcc8346f5f2a163278c5f5a15613c9b44a551.zip opensim-SC_OLD-8b7bcc8346f5f2a163278c5f5a15613c9b44a551.tar.gz opensim-SC_OLD-8b7bcc8346f5f2a163278c5f5a15613c9b44a551.tar.bz2 opensim-SC_OLD-8b7bcc8346f5f2a163278c5f5a15613c9b44a551.tar.xz |
Allow one to specify a DefaultHGRegion flag in [GridService] in order to allow different default regions for HG and direct grid logins.
This requires a new GridService.GetDefaultHypergridRegions() so ROBUST services require updating but not simulators.
This method still returns regions flagged with just DefaultRegion after any DefaultHGRegions, so if no DefaultHGRegions are specified
then existing configured defaults will still work.
Immediate use is for conference where we need to be able to specify different defaults
However, this is also generally useful to send experienced HG users to one default location and local users whose specified region fails (e.g. no "home" or "last") to another.
Diffstat (limited to 'OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs')
-rw-r--r-- | OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs index 89cba8a..c63b409 100644 --- a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs +++ b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs | |||
@@ -106,6 +106,9 @@ namespace OpenSim.Server.Handlers.Grid | |||
106 | case "get_default_regions": | 106 | case "get_default_regions": |
107 | return GetDefaultRegions(request); | 107 | return GetDefaultRegions(request); |
108 | 108 | ||
109 | case "get_default_hypergrid_regions": | ||
110 | return GetDefaultHypergridRegions(request); | ||
111 | |||
109 | case "get_fallback_regions": | 112 | case "get_fallback_regions": |
110 | return GetFallbackRegions(request); | 113 | return GetFallbackRegions(request); |
111 | 114 | ||
@@ -444,6 +447,36 @@ namespace OpenSim.Server.Handlers.Grid | |||
444 | return Util.UTF8NoBomEncoding.GetBytes(xmlString); | 447 | return Util.UTF8NoBomEncoding.GetBytes(xmlString); |
445 | } | 448 | } |
446 | 449 | ||
450 | byte[] GetDefaultHypergridRegions(Dictionary<string, object> request) | ||
451 | { | ||
452 | //m_log.DebugFormat("[GRID HANDLER]: GetDefaultRegions"); | ||
453 | UUID scopeID = UUID.Zero; | ||
454 | if (request.ContainsKey("SCOPEID")) | ||
455 | UUID.TryParse(request["SCOPEID"].ToString(), out scopeID); | ||
456 | else | ||
457 | m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get region range"); | ||
458 | |||
459 | List<GridRegion> rinfos = m_GridService.GetDefaultHypergridRegions(scopeID); | ||
460 | |||
461 | Dictionary<string, object> result = new Dictionary<string, object>(); | ||
462 | if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0))) | ||
463 | result["result"] = "null"; | ||
464 | else | ||
465 | { | ||
466 | int i = 0; | ||
467 | foreach (GridRegion rinfo in rinfos) | ||
468 | { | ||
469 | Dictionary<string, object> rinfoDict = rinfo.ToKeyValuePairs(); | ||
470 | result["region" + i] = rinfoDict; | ||
471 | i++; | ||
472 | } | ||
473 | } | ||
474 | string xmlString = ServerUtils.BuildXmlResponse(result); | ||
475 | |||
476 | //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); | ||
477 | return Util.UTF8NoBomEncoding.GetBytes(xmlString); | ||
478 | } | ||
479 | |||
447 | byte[] GetFallbackRegions(Dictionary<string, object> request) | 480 | byte[] GetFallbackRegions(Dictionary<string, object> request) |
448 | { | 481 | { |
449 | //m_log.DebugFormat("[GRID HANDLER]: GetRegionRange"); | 482 | //m_log.DebugFormat("[GRID HANDLER]: GetRegionRange"); |