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.
parent
1ce362323e
commit
d8313e314f
|
@ -130,20 +130,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
|
||||||
|
|
||||||
protected void InitialiseHGServices(OpenSimBase openSim, LibraryRootFolder libraryRootFolder)
|
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)
|
// Standalone mode is determined by !startupConfig.GetBoolean("gridmode", false)
|
||||||
if (m_openSim.ConfigurationSettings.Standalone)
|
if (m_openSim.ConfigurationSettings.Standalone)
|
||||||
{
|
{
|
||||||
|
@ -154,7 +140,7 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
|
||||||
// We are in grid mode
|
// We are in grid mode
|
||||||
InitialiseHGGridServices(libraryRootFolder);
|
InitialiseHGGridServices(libraryRootFolder);
|
||||||
}
|
}
|
||||||
hgNode.HGServices = HGServices;
|
HGCommands.HGServices = HGServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void InitialiseStandardServices(LibraryRootFolder libraryRootFolder)
|
protected void InitialiseStandardServices(LibraryRootFolder libraryRootFolder)
|
||||||
|
|
|
@ -94,14 +94,12 @@ namespace OpenSim
|
||||||
configSource.AddSwitch("Startup", "inidirectory");
|
configSource.AddSwitch("Startup", "inidirectory");
|
||||||
configSource.AddSwitch("Startup", "gridmode");
|
configSource.AddSwitch("Startup", "gridmode");
|
||||||
configSource.AddSwitch("Startup", "physics");
|
configSource.AddSwitch("Startup", "physics");
|
||||||
configSource.AddSwitch("Startup", "hypergrid");
|
|
||||||
configSource.AddSwitch("Startup", "gui");
|
configSource.AddSwitch("Startup", "gui");
|
||||||
|
|
||||||
configSource.AddConfig("StandAlone");
|
configSource.AddConfig("StandAlone");
|
||||||
configSource.AddConfig("Network");
|
configSource.AddConfig("Network");
|
||||||
|
|
||||||
bool background = configSource.Configs["Startup"].GetBoolean("background", false);
|
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_saveCrashDumps = configSource.Configs["Startup"].GetBoolean("save_crashes", false);
|
||||||
m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir);
|
m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir);
|
||||||
|
|
||||||
|
@ -112,11 +110,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_sim = null;
|
m_sim = new OpenSim(configSource);
|
||||||
if (hgrid)
|
|
||||||
m_sim = new HGOpenSimNode(configSource);
|
|
||||||
else
|
|
||||||
m_sim = new OpenSim(configSource);
|
|
||||||
|
|
||||||
m_sim.Startup();
|
m_sim.Startup();
|
||||||
|
|
||||||
|
|
|
@ -40,42 +40,17 @@ using OpenSim.Region.Framework.Scenes.Hypergrid;
|
||||||
|
|
||||||
namespace OpenSim
|
namespace OpenSim
|
||||||
{
|
{
|
||||||
public class HGOpenSimNode : OpenSim
|
public class HGCommands
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
public IHyperlink HGServices = null;
|
public static IHyperlink HGServices = null;
|
||||||
|
|
||||||
private uint m_autoMappingX = 0;
|
private static uint m_autoMappingX = 0;
|
||||||
private uint m_autoMappingY = 0;
|
private static uint m_autoMappingY = 0;
|
||||||
private bool m_enableAutoMapping = false;
|
private static bool m_enableAutoMapping = false;
|
||||||
|
|
||||||
public HGOpenSimNode(IConfigSource configSource) : base(configSource)
|
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)
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Performs initialisation of the scene, such as loading configuration from disk.
|
|
||||||
/// </summary>
|
|
||||||
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 [<x> <y>] <cr>",
|
|
||||||
"Set local coordinate to map HG regions to", RunCommand);
|
|
||||||
MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region",
|
|
||||||
"link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>] <cr>",
|
|
||||||
"Link a hypergrid region", RunCommand);
|
|
||||||
MainConsole.Instance.Commands.AddCommand("hypergrid", false, "unlink-region",
|
|
||||||
"unlink-region <local name> or <HostName>:<HttpPort> <cr>",
|
|
||||||
"Unlink a hypergrid region", RunCommand);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
|
|
||||||
AgentCircuitManager circuitManager)
|
|
||||||
{
|
{
|
||||||
HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices);
|
HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices);
|
||||||
|
|
||||||
|
@ -86,18 +61,11 @@ namespace OpenSim
|
||||||
m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
|
m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
private new void RunCommand(string module, string[] cp)
|
public static void RunHGCommand(string command, string[] cmdparams, Scene scene)
|
||||||
{
|
{
|
||||||
List<string> cmdparams = new List<string>(cp);
|
|
||||||
if (cmdparams.Count < 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
string command = cmdparams[0];
|
|
||||||
cmdparams.RemoveAt(0);
|
|
||||||
|
|
||||||
if (command.Equals("link-mapping"))
|
if (command.Equals("link-mapping"))
|
||||||
{
|
{
|
||||||
if (cmdparams.Count == 2)
|
if (cmdparams.Length == 2)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -115,11 +83,11 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
else if (command.Equals("link-region"))
|
else if (command.Equals("link-region"))
|
||||||
{
|
{
|
||||||
if (cmdparams.Count < 3)
|
if (cmdparams.Length < 3)
|
||||||
{
|
{
|
||||||
if ((cmdparams.Count == 1) || (cmdparams.Count == 2))
|
if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
|
||||||
{
|
{
|
||||||
LoadXmlLinkFile(cmdparams);
|
LoadXmlLinkFile(cmdparams, scene);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -138,8 +106,8 @@ namespace OpenSim
|
||||||
xloc = Convert.ToUInt32(cmdparams[0]);
|
xloc = Convert.ToUInt32(cmdparams[0]);
|
||||||
yloc = Convert.ToUInt32(cmdparams[1]);
|
yloc = Convert.ToUInt32(cmdparams[1]);
|
||||||
mapName = cmdparams[2];
|
mapName = cmdparams[2];
|
||||||
if (cmdparams.Count > 3)
|
if (cmdparams.Length > 3)
|
||||||
for (int i = 3; i < cmdparams.Count; i++)
|
for (int i = 3; i < cmdparams.Length; i++)
|
||||||
mapName += " " + cmdparams[i];
|
mapName += " " + cmdparams[i];
|
||||||
|
|
||||||
m_log.Info(">> MapName: " + mapName);
|
m_log.Info(">> MapName: " + mapName);
|
||||||
|
@ -153,7 +121,7 @@ namespace OpenSim
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGHyperlink.TryLinkRegionToCoords(m_sceneManager.CurrentOrFirstScene, null, mapName, xloc, yloc);
|
HGHyperlink.TryLinkRegionToCoords(scene, null, mapName, xloc, yloc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -179,12 +147,12 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo))
|
//if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo))
|
||||||
if (HGHyperlink.TryCreateLink(m_sceneManager.CurrentOrFirstScene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo))
|
if (HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo))
|
||||||
{
|
{
|
||||||
if (cmdparams.Count >= 5)
|
if (cmdparams.Length >= 5)
|
||||||
{
|
{
|
||||||
regInfo.RegionName = "";
|
regInfo.RegionName = "";
|
||||||
for (int i = 4; i < cmdparams.Count; i++)
|
for (int i = 4; i < cmdparams.Length; i++)
|
||||||
regInfo.RegionName += cmdparams[i] + " ";
|
regInfo.RegionName += cmdparams[i] + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,19 +161,19 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
else if (command.Equals("unlink-region"))
|
else if (command.Equals("unlink-region"))
|
||||||
{
|
{
|
||||||
if (cmdparams.Count < 1)
|
if (cmdparams.Length < 1)
|
||||||
{
|
{
|
||||||
UnlinkRegionCmdUsage();
|
UnlinkRegionCmdUsage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (HGHyperlink.TryUnlinkRegion(m_sceneManager.CurrentOrFirstScene, cmdparams[0]))
|
if (HGHyperlink.TryUnlinkRegion(scene, cmdparams[0]))
|
||||||
m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]);
|
m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]);
|
||||||
else
|
else
|
||||||
m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]);
|
m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadXmlLinkFile(List<string> cmdparams)
|
private static void LoadXmlLinkFile(string[] cmdparams, Scene scene)
|
||||||
{
|
{
|
||||||
//use http://www.hgurl.com/hypergrid.xml for test
|
//use http://www.hgurl.com/hypergrid.xml for test
|
||||||
try
|
try
|
||||||
|
@ -214,7 +182,7 @@ namespace OpenSim
|
||||||
XmlConfigSource cs = new XmlConfigSource(r);
|
XmlConfigSource cs = new XmlConfigSource(r);
|
||||||
string[] excludeSections = null;
|
string[] excludeSections = null;
|
||||||
|
|
||||||
if (cmdparams.Count == 2)
|
if (cmdparams.Length == 2)
|
||||||
{
|
{
|
||||||
if (cmdparams[1].ToLower().StartsWith("excludelist:"))
|
if (cmdparams[1].ToLower().StartsWith("excludelist:"))
|
||||||
{
|
{
|
||||||
|
@ -242,7 +210,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
if (!skip)
|
if (!skip)
|
||||||
{
|
{
|
||||||
ReadLinkFromConfig(cs.Configs[i]);
|
ReadLinkFromConfig(cs.Configs[i], scene);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -253,7 +221,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ReadLinkFromConfig(IConfig config)
|
private static void ReadLinkFromConfig(IConfig config, Scene scene)
|
||||||
{
|
{
|
||||||
RegionInfo regInfo;
|
RegionInfo regInfo;
|
||||||
uint xloc, yloc;
|
uint xloc, yloc;
|
||||||
|
@ -279,7 +247,7 @@ namespace OpenSim
|
||||||
((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
|
((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
HGHyperlink.TryCreateLink(m_sceneManager.CurrentOrFirstScene, null, xloc, yloc, "", externalPort,
|
HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort,
|
||||||
externalHostName, out regInfo))
|
externalHostName, out regInfo))
|
||||||
{
|
{
|
||||||
regInfo.RegionName = config.GetString("localName", "");
|
regInfo.RegionName = config.GetString("localName", "");
|
||||||
|
@ -288,14 +256,14 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void LinkRegionCmdUsage()
|
private static void LinkRegionCmdUsage()
|
||||||
{
|
{
|
||||||
m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>]");
|
m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>]");
|
||||||
m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName> <HttpPort> [<LocalName>]");
|
m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName> <HttpPort> [<LocalName>]");
|
||||||
m_log.Info("Usage: link-region <URI_of_xml> [<exclude>]");
|
m_log.Info("Usage: link-region <URI_of_xml> [<exclude>]");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UnlinkRegionCmdUsage()
|
private static void UnlinkRegionCmdUsage()
|
||||||
{
|
{
|
||||||
m_log.Info("Usage: unlink-region <HostName>:<HttpPort>");
|
m_log.Info("Usage: unlink-region <HostName>:<HttpPort>");
|
||||||
m_log.Info("Usage: unlink-region <LocalName>");
|
m_log.Info("Usage: unlink-region <LocalName>");
|
|
@ -291,6 +291,16 @@ namespace OpenSim
|
||||||
"reset user password [<first> [<last> [<password>]]]",
|
"reset user password [<first> [<last> [<password>]]]",
|
||||||
"Reset a user password", HandleResetUserPassword);
|
"Reset a user password", HandleResetUserPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_console.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [<x> <y>] <cr>",
|
||||||
|
"Set local coordinate to map HG regions to", RunCommand);
|
||||||
|
m_console.Commands.AddCommand("hypergrid", false, "link-region",
|
||||||
|
"link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>] <cr>",
|
||||||
|
"Link a hypergrid region", RunCommand);
|
||||||
|
m_console.Commands.AddCommand("hypergrid", false, "unlink-region",
|
||||||
|
"unlink-region <local name> or <HostName>:<HttpPort> <cr>",
|
||||||
|
"Unlink a hypergrid region", RunCommand);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ShutdownSpecific()
|
public override void ShutdownSpecific()
|
||||||
|
@ -625,6 +635,12 @@ namespace OpenSim
|
||||||
m_sceneManager.CacheJ2kDecode(1);
|
m_sceneManager.CacheJ2kDecode(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "link-region":
|
||||||
|
case "unlink-region":
|
||||||
|
case "link-mapping":
|
||||||
|
HGCommands.RunHGCommand(command, cmdparams, m_sceneManager.CurrentOrFirstScene);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -736,6 +736,11 @@ namespace OpenSim
|
||||||
protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
|
protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
|
||||||
AgentCircuitManager circuitManager)
|
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);
|
SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager);
|
||||||
|
|
||||||
return new Scene(
|
return new Scene(
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
; Set this to false if you are running OpenSimulator in standalone mode
|
; Set this to false if you are running OpenSimulator in standalone mode
|
||||||
gridmode = false
|
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"
|
startup_console_commands_file = "startup_commands.txt"
|
||||||
shutdown_console_commands_file = "shutdown_commands.txt"
|
shutdown_console_commands_file = "shutdown_commands.txt"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue