diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 9f1eb88885..1345bffbf4 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -27,17 +27,18 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Reflection;
using log4net;
using Nini.Config;
using Mono.Addins;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
-using OpenSim.Framework;
+//using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-using OpenSim.Services.Interfaces;
+// using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.ClientStack.Linden
@@ -63,8 +64,6 @@ namespace OpenSim.Region.ClientStack.Linden
private Scene m_scene;
- bool m_AllowOverride = true;
-
///
/// Simulator features
///
@@ -81,25 +80,11 @@ namespace OpenSim.Region.ClientStack.Linden
IConfig config = source.Configs["SimulatorFeatures"];
if (config != null)
- {
- string featuresURI = config.GetString("ExtraFeaturesServiceURI", string.Empty);
-
- if (string.IsNullOrEmpty(featuresURI))
- {
- m_log.Info("ExtraFeaturesServiceURI is undefined. The grid's ExtraFeatures will not be available to regions in this instance.");
- }
- else
- {
- GetGridExtraFeatures(featuresURI);
- }
-
- if (m_AllowOverride)
- {
- m_SearchURL = config.GetString("SearchServerURI", m_SearchURL);
- m_DestinationGuideURL = config.GetString ("DestinationGuideURI", m_DestinationGuideURL);
-
- m_ExportSupported = config.GetBoolean("ExportSupported", m_ExportSupported);
- }
+ {
+ // These are normaly set in their respective modules
+ m_SearchURL = config.GetString("SearchServerURI", m_SearchURL);
+ m_DestinationGuideURL = config.GetString ("DestinationGuideURI", m_DestinationGuideURL);
+ m_ExportSupported = config.GetBoolean("ExportSupported", m_ExportSupported);
}
AddDefaultFeatures();
@@ -120,6 +105,7 @@ namespace OpenSim.Region.ClientStack.Linden
public void RegionLoaded(Scene s)
{
+ GetGridExtraFeatures(s);
}
public void PostInitialise()
@@ -169,11 +155,11 @@ namespace OpenSim.Region.ClientStack.Linden
else
extrasMap = new OSDMap();
- if (m_SearchURL != string.Empty && m_AllowOverride == true)
+ if (m_SearchURL != string.Empty)
extrasMap["search-server-url"] = m_SearchURL;
- if (!string.IsNullOrEmpty(m_DestinationGuideURL) && m_AllowOverride == true)
+ if (!string.IsNullOrEmpty(m_DestinationGuideURL))
extrasMap["destination-guide-url"] = m_DestinationGuideURL;
- if (m_ExportSupported && m_AllowOverride == true)
+ if (m_ExportSupported)
extrasMap["ExportSupported"] = true;
if (extrasMap.Count > 0)
@@ -233,9 +219,7 @@ namespace OpenSim.Region.ClientStack.Linden
SimulatorFeaturesRequestDelegate handlerOnSimulatorFeaturesRequest = OnSimulatorFeaturesRequest;
- // We will not trigger the event if m_AllowOverride == False
- // See Robust.ini/Robust.HG.ini [GridExtraFeatures] - AllowRegionOverride
- if (handlerOnSimulatorFeaturesRequest != null && m_AllowOverride == true)
+ if (handlerOnSimulatorFeaturesRequest != null)
handlerOnSimulatorFeaturesRequest(agentID, ref copy);
//Send back data
@@ -255,32 +239,22 @@ namespace OpenSim.Region.ClientStack.Linden
///
/// The URI Robust uses to handle the get_extra_features request
///
- private void GetGridExtraFeatures(string featuresURI)
+ private void GetGridExtraFeatures(Scene scene)
{
- JsonRpcRequestManager rpc = new JsonRpcRequestManager ();
-
- OSDMap parameters = new OSDMap ();
- OSD Params = (OSD)parameters;
- if (!rpc.JsonRpcRequest (ref Params, "get_extra_features", featuresURI, UUID.Random ().ToString ()))
- {
- m_log.Error("[SIMFEATURES]: Could not retrieve extra features from grid. Please check configuration.");
- return;
- }
- parameters = (OSDMap)Params;
- OSDMap features = (OSDMap)parameters ["result"];
-
- if(features.ContainsKey("region_override"))
- m_AllowOverride = features ["region_override"].AsBoolean () ;
- else
- m_AllowOverride = true;
-
- OSDMap test = (OSDMap)features ["extra_features"];
+ Dictionary extraFeatures = scene.GridService.GetExtraFeatures();
+
lock (m_features)
{
OSDMap extrasMap = new OSDMap();
- foreach (string key in test.Keys)
+
+ foreach(string key in extraFeatures.Keys)
{
- extrasMap[key] = test[key];
+ extrasMap[key] = (string)extraFeatures[key];
+
+ if (key == "ExportSupported")
+ {
+ bool.TryParse(extraFeatures[key].ToString(), out m_ExportSupported);
+ }
}
m_features["OpenSimExtras"] = extrasMap;
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/LocalGridFeaturesServiceInConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/LocalGridFeaturesServiceInConnector.cs
deleted file mode 100644
index 6cfb099e83..0000000000
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/LocalGridFeaturesServiceInConnector.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Reflection;
-using System.Collections.Generic;
-using log4net;
-using Mono.Addins;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers;
-using OpenSim.Region.Framework.Scenes;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Server.Base;
-using OpenSim.Server.Handlers.Base;
-using OpenSim.Server.Handlers.Grid;
-using OpenSim.Services.Interfaces;
-using OpenSim.Framework.Servers.HttpServer;
-
-namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
-{
- [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalGridFeaturesServiceInConnector")]
- public class LocalGridExtraFeaturesServiceInConnector : ISharedRegionModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private static bool m_Enabled = false;
-
- private IConfigSource m_Config;
- bool m_Registered = false;
-
- #region Region Module interface
-
- public void Initialise(IConfigSource config)
- {
- m_Config = config;
- IConfig moduleConfig = config.Configs["Modules"];
- if (moduleConfig != null)
- {
- string name = moduleConfig.GetString("GridExtraFeaturesServiceInConnector", "");
- if (name == Name)
- {
- m_log.Info("[GridExtraFeatures]: GridExtraFeatures Service In Connector enabled");
- InitializeService(config);
- }
- }
- }
-
- public void InitializeService(IConfigSource config)
- {
- GridExtraFeaturesHandlers handler = new GridExtraFeaturesHandlers(config);
-
- IHttpServer Server = MainServer.Instance;
-
- Server.AddJsonRPCHandler("get_extra_features", handler.JsonGetGridFeaturesMethod);
-
- }
-
- public void PostInitialise()
- {
- }
-
- public void Close()
- {
- }
-
- public Type ReplaceableInterface
- {
- get { return null; }
- }
-
- public string Name
- {
- get { return "LocalGridExtraFeaturesServiceInConnector"; }
- }
-
- public void AddRegion(Scene scene)
- {
- if (!m_Enabled)
- return;
- }
-
- public void RemoveRegion(Scene scene)
- {
- if (!m_Enabled)
- return;
- }
-
- public void RegionLoaded(Scene scene)
- {
- if (!m_Enabled)
- return;
-
- if (!m_Registered)
- {
- m_Registered = true;
-
- m_log.Info("[GRID EXTRA FEATURES]: Starting...");
-
- new GridExtraFeaturesServerInConnector(m_Config, MainServer.Instance, "GridExtraFeaturesService");
- }
- }
-#endregion
-
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
index 731bd2858f..8e995db9bf 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
@@ -278,6 +278,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
return m_GridService.GetRegionFlags(scopeID, regionID);
}
+ public Dictionary GetExtraFeatures()
+ {
+ return m_GridService.GetExtraFeatures();
+ }
+
#endregion
public void HandleShowNeighboursCommand(string module, string[] cmdparams)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
index ae5081cde4..f0c4926337 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
@@ -28,6 +28,7 @@
using log4net;
using Mono.Addins;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Nini.Config;
@@ -349,6 +350,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
return flags;
}
+
+ public Dictionary GetExtraFeatures()
+ {
+ Dictionary extraFeatures;
+ extraFeatures = m_LocalGridService.GetExtraFeatures();
+
+ if (extraFeatures.Count == 0)
+ extraFeatures = m_RemoteGridService.GetExtraFeatures();
+
+ return extraFeatures;
+ }
#endregion
}
}
diff --git a/OpenSim/Server/Handlers/Grid/GridExtraFeaturesHandlers.cs b/OpenSim/Server/Handlers/Grid/GridExtraFeaturesHandlers.cs
deleted file mode 100644
index 6a62cfc279..0000000000
--- a/OpenSim/Server/Handlers/Grid/GridExtraFeaturesHandlers.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.IO;
-using System.Net;
-using System.Reflection;
-using System.Security;
-using System.Text;
-using log4net;
-using Nini.Config;
-using Nwc.XmlRpc;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenMetaverse.StructuredData;
-
-
-namespace OpenSim.Server.Handlers.Grid
-{
- ///
- /// Grid extra features handlers.
- /// Allows grid level configuration of OpenSimExtra items.
- /// Option to control region override of these settings.
- ///
- public class GridExtraFeaturesHandlers
- {
- private static readonly ILog m_Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private Hashtable m_ExtraFeatures = new Hashtable();
- private bool m_AllowRegionOverride = true;
-
- public GridExtraFeaturesHandlers(IConfigSource configSource)
- {
- try
- {
- IConfig featuresCfg = configSource.Configs["GridExtraFeatures"];
-
- foreach( string key in featuresCfg.GetKeys())
- {
- if(key != "AllowRegionOverride")
- {
- string value = featuresCfg.GetString(key);
-
- // map the value to the viewer supported extra features
- // add additional ones here as support is added in the viewer
- // and place the configuration option in [GridExtraFeatures].
- switch(key)
- {
- case "SearchServerURI":
- m_ExtraFeatures["search-server-url"] = value;
- break;
- case "MapImageServerURI":
- m_ExtraFeatures["map-server-url"] = value;
- break;
- case "DestinationGuideURI":
- m_ExtraFeatures["destination-guide-url"] = value;
- break;
- case "ExportSupported":
- m_ExtraFeatures["ExportSupported"] = value;
- break;
- case "WhisperDistance":
- m_ExtraFeatures["whisper-range"] = value;
- break;
- case "SayDistance":
- m_ExtraFeatures["say-range"] = value;
- break;
- case "ShoutDistance":
- m_ExtraFeatures["shout-range"] = value;
- break;
- default:
- m_Log.InfoFormat("{0} not yet supported.");
- break;
- }
- }
- else
- m_AllowRegionOverride = featuresCfg.GetBoolean(key);
- }
- }
- catch (Exception)
- {
- m_Log.Warn("[GRID EXTRA FEATURES SERVICE]: Cannot get grid features from config source, allowing region override");
- }
- }
-
- public bool JsonGetGridFeaturesMethod(OSDMap json, ref JsonRpcResponse response)
- {
- OSDMap features = new OSDMap();
- OSDMap json_map = new OSDMap();
-
- foreach (string key in m_ExtraFeatures.Keys)
- {
- features[key] = OSD.FromString(m_ExtraFeatures[key].ToString());
- }
-
- json_map["extra_features"] = features;
- json_map["region_override"] = m_AllowRegionOverride.ToString();
-
- response.Result = json_map;
-
- return true;
- }
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Server/Handlers/Grid/GridExtraFeaturesServerInConnector.cs b/OpenSim/Server/Handlers/Grid/GridExtraFeaturesServerInConnector.cs
deleted file mode 100644
index f57a4b39a7..0000000000
--- a/OpenSim/Server/Handlers/Grid/GridExtraFeaturesServerInConnector.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using log4net;
-using OpenMetaverse;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Server.Handlers.Base;
-
-namespace OpenSim.Server.Handlers.Grid
-{
- public class GridExtraFeaturesServerInConnector : ServiceConnector
- {
- public GridExtraFeaturesServerInConnector(IConfigSource config, IHttpServer server, string configName) :
- base(config, server, configName)
- {
- GridExtraFeaturesHandlers handler = new GridExtraFeaturesHandlers(config);
-
- server.AddJsonRPCHandler("get_extra_features", handler.JsonGetGridFeaturesMethod);
- }
- }
-}
diff --git a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
index d5a9d67d1e..849fa94030 100644
--- a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
@@ -122,6 +122,9 @@ namespace OpenSim.Server.Handlers.Grid
case "get_region_flags":
return GetRegionFlags(request);
+
+ case "get_grid_extra_features":
+ return GetGridExtraFeatures(request);
}
m_log.DebugFormat("[GRID HANDLER]: unknown method request {0}", method);
@@ -578,6 +581,22 @@ namespace OpenSim.Server.Handlers.Grid
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
}
+
+ byte[] GetGridExtraFeatures(Dictionary request)
+ {
+
+ Dictionary result = new Dictionary ();
+ Dictionary extraFeatures = m_GridService.GetExtraFeatures ();
+
+ foreach (string key in extraFeatures.Keys)
+ {
+ result [key] = extraFeatures [key];
+ }
+
+ string xmlString = ServerUtils.BuildXmlResponse(result);
+
+ return Util.UTF8NoBomEncoding.GetBytes(xmlString);
+ }
#endregion
diff --git a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs
index 7f86cffc5d..9e553568bd 100644
--- a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs
+++ b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs
@@ -719,6 +719,45 @@ namespace OpenSim.Services.Connectors
return flags;
}
+ public Dictionary GetExtraFeatures()
+ {
+ Dictionary sendData = new Dictionary();
+ Dictionary extraFeatures = new Dictionary();
+
+ sendData["METHOD"] = "get_grid_extra_features";
+
+ string reply = string.Empty;
+ string uri = m_ServerURI + "/grid";
+
+ try
+ {
+ reply = SynchronousRestFormsRequester.MakeRequest("POST",
+ uri,
+ ServerUtils.BuildQueryString(sendData), m_Auth);
+ }
+ catch (Exception e)
+ {
+ m_log.DebugFormat("[GRID CONNECTOR]: GetExtraFeatures - Exception when contacting grid server at {0}: {1}", uri, e.Message);
+ return extraFeatures;
+ }
+
+ if (reply != string.Empty)
+ {
+ Dictionary replyData = ServerUtils.ParseXmlResponse(reply);
+
+ if ((replyData != null) && replyData.Count > 0)
+ {
+ foreach (string key in replyData.Keys)
+ {
+ extraFeatures[key] = replyData[key].ToString();
+ }
+ }
+ }
+ else
+ m_log.DebugFormat("[GRID CONNECTOR]: GetExtraServiceURLs received null reply");
+
+ return extraFeatures;
+ }
#endregion
}
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
index 6b59f948e0..b031f217f3 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
@@ -402,6 +402,13 @@ namespace OpenSim.Services.Connectors.SimianGrid
return -1;
}
}
+
+ public Dictionary GetExtraFeatures()
+ {
+ /// See SimulatorFeaturesModule - Need to get map, search and destination guide
+ Dictionary extraFeatures = new Dictionary();
+ return extraFeatures;
+ }
#endregion IGridService
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs
index 013cc53866..e8a545cf10 100644
--- a/OpenSim/Services/GridService/GridService.cs
+++ b/OpenSim/Services/GridService/GridService.cs
@@ -59,6 +59,8 @@ namespace OpenSim.Services.GridService
protected bool m_SuppressVarregionOverlapCheckOnRegistration = false;
+ private static Dictionary m_ExtraFeatures = new Dictionary();
+
public GridService(IConfigSource config)
: base(config)
{
@@ -139,10 +141,38 @@ namespace OpenSim.Services.GridService
HandleSetFlags);
}
+ if (!suppressConsoleCommands)
+ SetExtraServiceURLs(config);
+
m_HypergridLinker = new HypergridLinker(m_config, this, m_Database);
}
}
+ private void SetExtraServiceURLs(IConfigSource config)
+ {
+ IConfig loginConfig = config.Configs["LoginService"];
+ IConfig gridConfig = config.Configs["GridService"];
+
+ if (loginConfig == null || gridConfig == null)
+ return;
+
+ string configVal;
+
+ configVal = loginConfig.GetString("SearchURL", string.Empty);
+ if (!string.IsNullOrEmpty(configVal))
+ m_ExtraFeatures["search-server-url"] = configVal;
+
+ configVal = loginConfig.GetString("MapTileURL", string.Empty);
+ if (!string.IsNullOrEmpty(configVal))
+ m_ExtraFeatures["map-server-url"] = configVal;
+
+ configVal = loginConfig.GetString("DestinationGuide", string.Empty);
+ if (!string.IsNullOrEmpty(configVal))
+ m_ExtraFeatures["destination-guide-url"] = configVal;
+
+ m_ExtraFeatures["ExportSupported"] = gridConfig.GetString("ExportSupported", "true");
+ }
+
#region IGridService
public string RegisterRegion(UUID scopeID, GridRegion regionInfos)
@@ -928,5 +958,18 @@ namespace OpenSim.Services.GridService
m_Database.Store(r);
}
}
+
+ ///
+ /// Gets the grid extra service URls we wish for the region to send in OpenSimExtras to dynamically refresh
+ /// parameters in the viewer used to access services like map, search and destination guides.
+ /// see "SimulatorFeaturesModule"
+ ///
+ ///
+ /// The grid extra service URls.
+ ///
+ public Dictionary GetExtraFeatures()
+ {
+ return m_ExtraFeatures;
+ }
}
}
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs
index b7bcd6bd51..c45ea76e2e 100644
--- a/OpenSim/Services/Interfaces/IGridService.cs
+++ b/OpenSim/Services/Interfaces/IGridService.cs
@@ -26,6 +26,7 @@
*/
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
@@ -119,6 +120,8 @@ namespace OpenSim.Services.Interfaces
///
///
int GetRegionFlags(UUID scopeID, UUID regionID);
+
+ Dictionary GetExtraFeatures();
}
public class GridRegion
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index f0e1a8a668..8c1a2c6673 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -538,21 +538,18 @@
[SimulatorFeatures]
- ;# {ExtraFeaturesServiceURI} {} {URL to the grid ExtraFeatures Service} {}
- ;; The grid can supply global values for extra simulator features to be
- ;; passed to supporting viewers. The grid may choose to disallow local
- ;; settings.
- ; ExtraFeaturesServiceURI = "http://127.0.0.1:9000/"
- ;# {MapImageServerURI} {} {URL for the map server} {}
- ; Experimental new information sent in SimulatorFeatures cap for Kokua
- ; viewers
- ; meant to override the MapImage and search server url given at login, and varying
- ; on a sim-basis.
- ; Viewers that don't understand it, will ignore it
- ;MapImageServerURI = "http://127.0.0.1:9000/"
+
;# {SearchServerURI} {} {URL of the search server} {}
+ ;; This is identical to the Robust LoginService SearchURL setting
+ ;; and will override that value if set here. The Robust setting
+ ;; provides a working default for the grid and setting here is
+ ;; optional.
;SearchServerURI = "http://127.0.0.1:9000/"
;# {DestinationGuideURI} {} {URL of the destination guide} {}
+ ;;
+ ;; This serves the same purpose as the DestinationGuideURI in the
+ ;; LoginService setting in the Robust server. This will override
+ ;; the Robust setting if desired as an option.
;DestinationGuideURI = "http://127.0.0.1:9000/"
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example
index 2319117bae..fb6531e82b 100644
--- a/bin/Robust.HG.ini.example
+++ b/bin/Robust.HG.ini.example
@@ -45,7 +45,6 @@ InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
-GridExtraFeaturesServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridExtraFeaturesServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
@@ -217,6 +216,10 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
;; Allow Hyperlinks to be created at the console
HypergridLinker = true
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
;; If you have this set under [Hypergrid], no need to set it here, leave it commented
; GatekeeperURI = "http://127.0.0.1:8002"
@@ -366,6 +369,9 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
; For V2 map
MapTileURL = "http://127.0.0.1:8002";
+ ; Url to search service
+ ; SearchURL = "http://127.0.0.1:8002";
+
; For V2/3 Web Profiles
; Work in progress: The ProfileServerURL/OpenIDServerURL are
; being used in a development viewer as support for webprofiles
@@ -485,38 +491,6 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
; this is the entry point for all user-related HG services
; uas = http://127.0.0.1:8002/
-
-[GridExtraFeatures]
- ; These are propagated out to the regions as default settings for the
- ; SimulatorFeatures to be sent to user's viewer when they teleport via
- ; Hypergrid into this grid.
- ;
-
- ; Allow regions to override our defaults.
- ;AllowRegionOverride = true
-
- ; Search Server URI
- ;SearchServerURI = "http://example.com:8200/"
-
- ; Map Server URI
- ;MapImageServerURI = "http://example.com:8200/"
-
- ; Grid Destination Guide URI
- ;DestinationGuideURI = "http://example.com:8200/"
-
- ; Chat Whisper Distance
- ;WhisperDistance = 10
-
- ; Chat Say Distance
- ;SayDistance = 20
-
- ; Chat Shout Distance
- ;ShoutDistance = 100
-
- ; Grid Allow Export
- ;ExportSupported = true
-
-
[GatekeeperService]
LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService"
;; for the service
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example
index 99a932d405..17c3dcd611 100644
--- a/bin/Robust.ini.example
+++ b/bin/Robust.ini.example
@@ -36,7 +36,6 @@ InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
-GridExtraFeaturesServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridExtraFeaturesServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
@@ -178,6 +177,10 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
; Region_Welcome_Area = "DefaultRegion, FallbackRegion"
; (replace spaces with underscore)
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
; * This is the configuration for the freeswitch server in grid mode
[FreeswitchService]
LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
@@ -325,6 +328,9 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
; For V2 map
MapTileURL = "http://127.0.0.1:8002";
+ ; Url to search service
+ ; SearchURL = "http://127.0.0.1:8002";
+
; For V2/3 Web Profiles
; Work in progress: The ProfileServerURL/OpenIDServerURL are
; being used in a development viewer as support for webprofiles
@@ -457,38 +463,6 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
; password help: optional: page providing password assistance for users of your grid
;password = http://127.0.0.1/password
-
-[GridExtraFeatures]
- ; These are propagated out to the regions as default settings for the
- ; SimulatorFeatures to be sent to user's viewer when they teleport via
- ; Hypergrid into this grid.
- ;
-
- ; Allow regions to override our defaults.
- ;AllowRegionOverride = true
-
- ; Search Server URI
- ;SearchServerURI = "http://example.com:8200/"
-
- ; Map Server URI
- ;MapImageServerURI = "http://example.com:8200/"
-
- ; Grid Destination Guide URI
- ;DestinationGuideURI = "http://example.com:8200/"
-
- ; Chat Whisper Distance
- ;WhisperDistance = 10
-
- ; Chat Say Distance
- ;SayDistance = 20
-
- ; Chat Shout Distance
- ;ShoutDistance = 100
-
- ; Grid Allow Export
- ;ExportSupported = true
-
-
[UserProfilesService]
LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
Enabled = false
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index 2bbc316ec1..c4ece54c42 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -105,6 +105,10 @@
;; For example:
Region_Welcome_Area = "DefaultRegion, FallbackRegion"
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
; === HG ONLY ===
;; If you have this set under [Hypergrid], no need to set it here, leave it commented
; GatekeeperURI="http://127.0.0.1:9000"
@@ -128,6 +132,9 @@
;; For Viewer 2
MapTileURL = "http://127.0.0.1:9000/"
+ ; Url to search service
+ ; SearchURL = "http://127.0.0.1:8002";
+
; The minimum user level required for a user to be able to login. 0 by default
; If you disable a particular user's account then you can set their login level below this number.
; You can also change this level from the console though these changes will not be persisted.