From d8313e314feddc492ec9d8e657aa7d0a15a7004b Mon Sep 17 00:00:00 2001 From: diva Date: Mon, 27 Apr 2009 00:16:59 +0000 Subject: Getting rid of -hypergrid=true on the command line. This config now goes inside OpenSim.ini in the Startup section. This makes the HG compatible with -background, and prepares the way for further work on HG-related config vars. Might help with mantis #3527. --- .../CreateCommsManager/CreateCommsManagerPlugin.cs | 16 +- OpenSim/Region/Application/Application.cs | 8 +- OpenSim/Region/Application/HGCommands.cs | 273 ++++++++++++++++++ OpenSim/Region/Application/HGOpenSimNode.cs | 305 --------------------- OpenSim/Region/Application/OpenSim.cs | 16 ++ OpenSim/Region/Application/OpenSimBase.cs | 5 + bin/OpenSim.ini.example | 3 + 7 files changed, 299 insertions(+), 327 deletions(-) create mode 100644 OpenSim/Region/Application/HGCommands.cs delete mode 100644 OpenSim/Region/Application/HGOpenSimNode.cs diff --git a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs index 3b98038..2bf5133 100644 --- a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs +++ b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs @@ -130,20 +130,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager protected void InitialiseHGServices(OpenSimBase openSim, LibraryRootFolder libraryRootFolder) { - HGOpenSimNode hgNode = null; - try - { - hgNode = (HGOpenSimNode) openSim; - } - catch (Exception e) - { - m_log.Error("[CreateComms] " + e.Message); - m_log.Error("[CreateComms] The OpenSim application class was : " + openSim.ToString()); - m_log.Error("[CreateComms] To use hypergrid mode, please make sure you are starting opensim with the command line: opensim.exe -hypergrid=true"); - m_log.Error("[CreateComms] Also hypergrid mode can not be ran while using the -background=true command line argument."); - Environment.Exit(1); - } - // Standalone mode is determined by !startupConfig.GetBoolean("gridmode", false) if (m_openSim.ConfigurationSettings.Standalone) { @@ -154,7 +140,7 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager // We are in grid mode InitialiseHGGridServices(libraryRootFolder); } - hgNode.HGServices = HGServices; + HGCommands.HGServices = HGServices; } protected void InitialiseStandardServices(LibraryRootFolder libraryRootFolder) diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index 7244dc9..46e3fc9 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs @@ -94,14 +94,12 @@ namespace OpenSim configSource.AddSwitch("Startup", "inidirectory"); configSource.AddSwitch("Startup", "gridmode"); configSource.AddSwitch("Startup", "physics"); - configSource.AddSwitch("Startup", "hypergrid"); configSource.AddSwitch("Startup", "gui"); configSource.AddConfig("StandAlone"); configSource.AddConfig("Network"); bool background = configSource.Configs["Startup"].GetBoolean("background", false); - bool hgrid = configSource.Configs["Startup"].GetBoolean("hypergrid", false); m_saveCrashDumps = configSource.Configs["Startup"].GetBoolean("save_crashes", false); m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir); @@ -112,11 +110,7 @@ namespace OpenSim } else { - m_sim = null; - if (hgrid) - m_sim = new HGOpenSimNode(configSource); - else - m_sim = new OpenSim(configSource); + m_sim = new OpenSim(configSource); m_sim.Startup(); diff --git a/OpenSim/Region/Application/HGCommands.cs b/OpenSim/Region/Application/HGCommands.cs new file mode 100644 index 0000000..07d3dcb --- /dev/null +++ b/OpenSim/Region/Application/HGCommands.cs @@ -0,0 +1,273 @@ +/* + * 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 System.Xml; +using log4net; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Framework.Communications; +using OpenSim.Framework.Console; +using OpenSim.Region.Framework; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Scenes.Hypergrid; + +namespace OpenSim +{ + public class HGCommands + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public static IHyperlink HGServices = null; + + private static uint m_autoMappingX = 0; + private static uint m_autoMappingY = 0; + private static bool m_enableAutoMapping = false; + + public static Scene CreateScene(RegionInfo regionInfo, AgentCircuitManager circuitManager, CommunicationsManager m_commsManager, + StorageManager storageManager, ModuleLoader m_moduleLoader, ConfigSettings m_configSettings, OpenSimConfigSource m_config, string m_version) + { + HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices); + + return + new HGScene( + regionInfo, circuitManager, m_commsManager, sceneGridService, storageManager, + m_moduleLoader, m_configSettings.DumpAssetsToFile, m_configSettings.PhysicalPrim, + m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); + } + + public static void RunHGCommand(string command, string[] cmdparams, Scene scene) + { + if (command.Equals("link-mapping")) + { + if (cmdparams.Length == 2) + { + try + { + m_autoMappingX = Convert.ToUInt32(cmdparams[0]); + m_autoMappingY = Convert.ToUInt32(cmdparams[1]); + m_enableAutoMapping = true; + } + catch (Exception) + { + m_autoMappingX = 0; + m_autoMappingY = 0; + m_enableAutoMapping = false; + } + } + } + else if (command.Equals("link-region")) + { + if (cmdparams.Length < 3) + { + if ((cmdparams.Length == 1) || (cmdparams.Length == 2)) + { + LoadXmlLinkFile(cmdparams, scene); + } + else + { + LinkRegionCmdUsage(); + } + return; + } + + if (cmdparams[2].Contains(":")) + { + // New format + uint xloc, yloc; + string mapName; + try + { + xloc = Convert.ToUInt32(cmdparams[0]); + yloc = Convert.ToUInt32(cmdparams[1]); + mapName = cmdparams[2]; + if (cmdparams.Length > 3) + for (int i = 3; i < cmdparams.Length; i++) + mapName += " " + cmdparams[i]; + + m_log.Info(">> MapName: " + mapName); + //internalPort = Convert.ToUInt32(cmdparams[4]); + //remotingPort = Convert.ToUInt32(cmdparams[5]); + } + catch (Exception e) + { + m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message); + LinkRegionCmdUsage(); + return; + } + + HGHyperlink.TryLinkRegionToCoords(scene, null, mapName, xloc, yloc); + } + else + { + // old format + RegionInfo regInfo; + uint xloc, yloc; + uint externalPort; + string externalHostName; + try + { + xloc = Convert.ToUInt32(cmdparams[0]); + yloc = Convert.ToUInt32(cmdparams[1]); + externalPort = Convert.ToUInt32(cmdparams[3]); + externalHostName = cmdparams[2]; + //internalPort = Convert.ToUInt32(cmdparams[4]); + //remotingPort = Convert.ToUInt32(cmdparams[5]); + } + catch (Exception e) + { + m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message); + LinkRegionCmdUsage(); + return; + } + + //if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo)) + if (HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo)) + { + if (cmdparams.Length >= 5) + { + regInfo.RegionName = ""; + for (int i = 4; i < cmdparams.Length; i++) + regInfo.RegionName += cmdparams[i] + " "; + } + } + } + return; + } + else if (command.Equals("unlink-region")) + { + if (cmdparams.Length < 1) + { + UnlinkRegionCmdUsage(); + return; + } + if (HGHyperlink.TryUnlinkRegion(scene, cmdparams[0])) + m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]); + else + m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]); + } + } + + private static void LoadXmlLinkFile(string[] cmdparams, Scene scene) + { + //use http://www.hgurl.com/hypergrid.xml for test + try + { + XmlReader r = XmlReader.Create(cmdparams[0]); + XmlConfigSource cs = new XmlConfigSource(r); + string[] excludeSections = null; + + if (cmdparams.Length == 2) + { + if (cmdparams[1].ToLower().StartsWith("excludelist:")) + { + string excludeString = cmdparams[1].ToLower(); + excludeString = excludeString.Remove(0, 12); + char[] splitter = {';'}; + + excludeSections = excludeString.Split(splitter); + } + } + + for (int i = 0; i < cs.Configs.Count; i++) + { + bool skip = false; + if ((excludeSections != null) && (excludeSections.Length > 0)) + { + for (int n = 0; n < excludeSections.Length; n++) + { + if (excludeSections[n] == cs.Configs[i].Name.ToLower()) + { + skip = true; + break; + } + } + } + if (!skip) + { + ReadLinkFromConfig(cs.Configs[i], scene); + } + } + } + catch (Exception e) + { + m_log.Error(e.ToString()); + } + } + + + private static void ReadLinkFromConfig(IConfig config, Scene scene) + { + RegionInfo regInfo; + uint xloc, yloc; + uint externalPort; + string externalHostName; + uint realXLoc, realYLoc; + + xloc = Convert.ToUInt32(config.GetString("xloc", "0")); + yloc = Convert.ToUInt32(config.GetString("yloc", "0")); + externalPort = Convert.ToUInt32(config.GetString("externalPort", "0")); + externalHostName = config.GetString("externalHostName", ""); + realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0")); + realYLoc = Convert.ToUInt32(config.GetString("real-yloc", "0")); + + if (m_enableAutoMapping) + { + xloc = (uint) ((xloc%100) + m_autoMappingX); + yloc = (uint) ((yloc%100) + m_autoMappingY); + } + + if (((realXLoc == 0) && (realYLoc == 0)) || + (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) && + ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896)))) + { + if ( + HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort, + externalHostName, out regInfo)) + { + regInfo.RegionName = config.GetString("localName", ""); + } + } + } + + + private static void LinkRegionCmdUsage() + { + m_log.Info("Usage: link-region :[:]"); + m_log.Info("Usage: link-region []"); + m_log.Info("Usage: link-region []"); + } + + private static void UnlinkRegionCmdUsage() + { + m_log.Info("Usage: unlink-region :"); + m_log.Info("Usage: unlink-region "); + } + + } +} \ No newline at end of file diff --git a/OpenSim/Region/Application/HGOpenSimNode.cs b/OpenSim/Region/Application/HGOpenSimNode.cs deleted file mode 100644 index f4f3062..0000000 --- a/OpenSim/Region/Application/HGOpenSimNode.cs +++ /dev/null @@ -1,305 +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 System.Xml; -using log4net; -using Nini.Config; -using OpenSim.Framework; -using OpenSim.Framework.Communications; -using OpenSim.Framework.Console; -using OpenSim.Region.Framework; -using OpenSim.Region.Framework.Scenes; -using OpenSim.Region.Framework.Scenes.Hypergrid; - -namespace OpenSim -{ - public class HGOpenSimNode : OpenSim - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public IHyperlink HGServices = null; - - private uint m_autoMappingX = 0; - private uint m_autoMappingY = 0; - private bool m_enableAutoMapping = false; - - public HGOpenSimNode(IConfigSource configSource) : base(configSource) - { - } - - /// - /// Performs initialisation of the scene, such as loading configuration from disk. - /// - protected override void StartupSpecific() - { - m_log.Info("===================================================================="); - m_log.Info("=================== STARTING HYPERGRID NODE ========================"); - m_log.Info("===================================================================="); - - base.StartupSpecific(); - - MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [ ] ", - "Set local coordinate to map HG regions to", RunCommand); - MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region", - "link-region :[:] ", - "Link a hypergrid region", RunCommand); - MainConsole.Instance.Commands.AddCommand("hypergrid", false, "unlink-region", - "unlink-region or : ", - "Unlink a hypergrid region", RunCommand); - } - - protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, - AgentCircuitManager circuitManager) - { - HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices); - - return - new HGScene( - regionInfo, circuitManager, m_commsManager, sceneGridService, storageManager, - m_moduleLoader, m_configSettings.DumpAssetsToFile, m_configSettings.PhysicalPrim, - m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); - } - - private new void RunCommand(string module, string[] cp) - { - List cmdparams = new List(cp); - if (cmdparams.Count < 1) - return; - - string command = cmdparams[0]; - cmdparams.RemoveAt(0); - - if (command.Equals("link-mapping")) - { - if (cmdparams.Count == 2) - { - try - { - m_autoMappingX = Convert.ToUInt32(cmdparams[0]); - m_autoMappingY = Convert.ToUInt32(cmdparams[1]); - m_enableAutoMapping = true; - } - catch (Exception) - { - m_autoMappingX = 0; - m_autoMappingY = 0; - m_enableAutoMapping = false; - } - } - } - else if (command.Equals("link-region")) - { - if (cmdparams.Count < 3) - { - if ((cmdparams.Count == 1) || (cmdparams.Count == 2)) - { - LoadXmlLinkFile(cmdparams); - } - else - { - LinkRegionCmdUsage(); - } - return; - } - - if (cmdparams[2].Contains(":")) - { - // New format - uint xloc, yloc; - string mapName; - try - { - xloc = Convert.ToUInt32(cmdparams[0]); - yloc = Convert.ToUInt32(cmdparams[1]); - mapName = cmdparams[2]; - if (cmdparams.Count > 3) - for (int i = 3; i < cmdparams.Count; i++) - mapName += " " + cmdparams[i]; - - m_log.Info(">> MapName: " + mapName); - //internalPort = Convert.ToUInt32(cmdparams[4]); - //remotingPort = Convert.ToUInt32(cmdparams[5]); - } - catch (Exception e) - { - m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message); - LinkRegionCmdUsage(); - return; - } - - HGHyperlink.TryLinkRegionToCoords(m_sceneManager.CurrentOrFirstScene, null, mapName, xloc, yloc); - } - else - { - // old format - RegionInfo regInfo; - uint xloc, yloc; - uint externalPort; - string externalHostName; - try - { - xloc = Convert.ToUInt32(cmdparams[0]); - yloc = Convert.ToUInt32(cmdparams[1]); - externalPort = Convert.ToUInt32(cmdparams[3]); - externalHostName = cmdparams[2]; - //internalPort = Convert.ToUInt32(cmdparams[4]); - //remotingPort = Convert.ToUInt32(cmdparams[5]); - } - catch (Exception e) - { - m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message); - LinkRegionCmdUsage(); - return; - } - - //if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo)) - if (HGHyperlink.TryCreateLink(m_sceneManager.CurrentOrFirstScene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo)) - { - if (cmdparams.Count >= 5) - { - regInfo.RegionName = ""; - for (int i = 4; i < cmdparams.Count; i++) - regInfo.RegionName += cmdparams[i] + " "; - } - } - } - return; - } - else if (command.Equals("unlink-region")) - { - if (cmdparams.Count < 1) - { - UnlinkRegionCmdUsage(); - return; - } - if (HGHyperlink.TryUnlinkRegion(m_sceneManager.CurrentOrFirstScene, cmdparams[0])) - m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]); - else - m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]); - } - } - - private void LoadXmlLinkFile(List cmdparams) - { - //use http://www.hgurl.com/hypergrid.xml for test - try - { - XmlReader r = XmlReader.Create(cmdparams[0]); - XmlConfigSource cs = new XmlConfigSource(r); - string[] excludeSections = null; - - if (cmdparams.Count == 2) - { - if (cmdparams[1].ToLower().StartsWith("excludelist:")) - { - string excludeString = cmdparams[1].ToLower(); - excludeString = excludeString.Remove(0, 12); - char[] splitter = {';'}; - - excludeSections = excludeString.Split(splitter); - } - } - - for (int i = 0; i < cs.Configs.Count; i++) - { - bool skip = false; - if ((excludeSections != null) && (excludeSections.Length > 0)) - { - for (int n = 0; n < excludeSections.Length; n++) - { - if (excludeSections[n] == cs.Configs[i].Name.ToLower()) - { - skip = true; - break; - } - } - } - if (!skip) - { - ReadLinkFromConfig(cs.Configs[i]); - } - } - } - catch (Exception e) - { - m_log.Error(e.ToString()); - } - } - - - private void ReadLinkFromConfig(IConfig config) - { - RegionInfo regInfo; - uint xloc, yloc; - uint externalPort; - string externalHostName; - uint realXLoc, realYLoc; - - xloc = Convert.ToUInt32(config.GetString("xloc", "0")); - yloc = Convert.ToUInt32(config.GetString("yloc", "0")); - externalPort = Convert.ToUInt32(config.GetString("externalPort", "0")); - externalHostName = config.GetString("externalHostName", ""); - realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0")); - realYLoc = Convert.ToUInt32(config.GetString("real-yloc", "0")); - - if (m_enableAutoMapping) - { - xloc = (uint) ((xloc%100) + m_autoMappingX); - yloc = (uint) ((yloc%100) + m_autoMappingY); - } - - if (((realXLoc == 0) && (realYLoc == 0)) || - (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) && - ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896)))) - { - if ( - HGHyperlink.TryCreateLink(m_sceneManager.CurrentOrFirstScene, null, xloc, yloc, "", externalPort, - externalHostName, out regInfo)) - { - regInfo.RegionName = config.GetString("localName", ""); - } - } - } - - - private void LinkRegionCmdUsage() - { - m_log.Info("Usage: link-region :[:]"); - m_log.Info("Usage: link-region []"); - m_log.Info("Usage: link-region []"); - } - - private void UnlinkRegionCmdUsage() - { - m_log.Info("Usage: unlink-region :"); - m_log.Info("Usage: unlink-region "); - } - - } -} \ No newline at end of file diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index a0b9568..d3941d6 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs @@ -291,6 +291,16 @@ namespace OpenSim "reset user password [ [ []]]", "Reset a user password", HandleResetUserPassword); } + + m_console.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [ ] ", + "Set local coordinate to map HG regions to", RunCommand); + m_console.Commands.AddCommand("hypergrid", false, "link-region", + "link-region :[:] ", + "Link a hypergrid region", RunCommand); + m_console.Commands.AddCommand("hypergrid", false, "unlink-region", + "unlink-region or : ", + "Unlink a hypergrid region", RunCommand); + } public override void ShutdownSpecific() @@ -625,6 +635,12 @@ namespace OpenSim m_sceneManager.CacheJ2kDecode(1); } break; + + case "link-region": + case "unlink-region": + case "link-mapping": + HGCommands.RunHGCommand(command, cmdparams, m_sceneManager.CurrentOrFirstScene); + break; } } diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 286c5a1..6838ab5 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -736,6 +736,11 @@ namespace OpenSim protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager) { + bool hgrid = ConfigSource.Source.Configs["Startup"].GetBoolean("hypergrid", false); + if (hgrid) + return HGCommands.CreateScene(regionInfo, circuitManager, m_commsManager, + storageManager, m_moduleLoader, m_configSettings, m_config, m_version); + SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); return new Scene( diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 01a1572..550162a 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -22,6 +22,9 @@ ; Set this to true if you are connecting your OpenSimulator regions to a grid ; Set this to false if you are running OpenSimulator in standalone mode gridmode = false + + ; Set this to true if you want this OpenSimulator to run the Hypergrid functionality + hypergrid = false startup_console_commands_file = "startup_commands.txt" shutdown_console_commands_file = "shutdown_commands.txt" -- cgit v1.1