diff --git a/OpenSim/Framework/GridConfig.cs b/OpenSim/Framework/GridConfig.cs
index a3c103280e..87fd3f0275 100644
--- a/OpenSim/Framework/GridConfig.cs
+++ b/OpenSim/Framework/GridConfig.cs
@@ -45,6 +45,8 @@ namespace OpenSim.Framework
public string SimSendKey = String.Empty;
public string UserRecvKey = String.Empty;
public string UserSendKey = String.Empty;
+ public string ConsoleUser = String.Empty;
+ public string ConsolePass = String.Empty;
public GridConfig(string description, string filename)
{
@@ -95,6 +97,12 @@ namespace OpenSim.Framework
"Allow regions to register immediately upon grid server startup? true/false",
"True",
false);
+ m_configMember.addConfigurationOption("console_user", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
+ "Remote console access user name [Default: disabled]", "0", false);
+
+ m_configMember.addConfigurationOption("console_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
+ "Remote console access password [Default: disabled]", "0", false);
+
}
public bool handleIncomingConfiguration(string configuration_key, object configuration_result)
@@ -140,9 +148,15 @@ namespace OpenSim.Framework
case "allow_region_registration":
AllowRegionRegistration = (bool)configuration_result;
break;
+ case "console_user":
+ ConsoleUser = (string)configuration_result;
+ break;
+ case "console_pass":
+ ConsolePass = (string)configuration_result;
+ break;
}
return true;
}
}
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs
index c41a728e05..e3ad52abb1 100644
--- a/OpenSim/Grid/GridServer/GridServerBase.cs
+++ b/OpenSim/Grid/GridServer/GridServerBase.cs
@@ -31,6 +31,7 @@ using System.IO;
using System.Reflection;
using System.Timers;
using log4net;
+using Nini.Config;
using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Framework.Servers;
@@ -46,6 +47,8 @@ namespace OpenSim.Grid.GridServer
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected GridConfig m_config;
+ public string m_consoleType = "local";
+ public IConfigSource m_configSource = null;
public GridConfig Config
{
@@ -71,16 +74,36 @@ namespace OpenSim.Grid.GridServer
public GridServerBase()
{
- m_console = new LocalConsole("Grid");
- MainConsole.Instance = m_console;
}
protected override void StartupSpecific()
{
+ switch (m_consoleType)
+ {
+ case "rest":
+ m_console = new RemoteConsole("Grid");
+ break;
+ case "basic":
+ m_console = new CommandConsole("Grid");
+ break;
+ default:
+ m_console = new LocalConsole("Grid");
+ break;
+ }
+ MainConsole.Instance = m_console;
m_config = new GridConfig("GRID SERVER", (Path.Combine(Util.configDir(), "GridServer_Config.xml")));
m_log.Info("[GRID]: Starting HTTP process");
m_httpServer = new BaseHttpServer(m_config.HttpPort);
+ if (m_console is RemoteConsole)
+ {
+ RemoteConsole c = (RemoteConsole)m_console;
+ c.SetServer(m_httpServer);
+ IConfig netConfig = m_configSource.AddConfig("Network");
+ netConfig.Set("ConsoleUser", m_config.ConsoleUser);
+ netConfig.Set("ConsolePass", m_config.ConsolePass);
+ c.ReadConfig(m_configSource);
+ }
LoadPlugins();
diff --git a/OpenSim/Grid/GridServer/Program.cs b/OpenSim/Grid/GridServer/Program.cs
index 9618b855d2..c7ba897b9a 100644
--- a/OpenSim/Grid/GridServer/Program.cs
+++ b/OpenSim/Grid/GridServer/Program.cs
@@ -26,6 +26,7 @@
*/
using log4net.Config;
+using Nini.Config;
namespace OpenSim.Grid.GridServer
{
@@ -33,10 +34,21 @@ namespace OpenSim.Grid.GridServer
{
public static void Main(string[] args)
{
+ ArgvConfigSource argvSource = new ArgvConfigSource(args);
+ argvSource.AddSwitch("Startup", "console", "c");
+
XmlConfigurator.Configure();
GridServerBase app = new GridServerBase();
+ IConfig startupConfig = argvSource.Configs["Startup"];
+ if (startupConfig != null)
+ {
+ app.m_consoleType = startupConfig.GetString("console", "local");
+ }
+
+ app.m_configSource = argvSource;
+
// if (args.Length > 0 && args[0] == "-setuponly")
// {
// app.Config();
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
index f47a96ef03..1ee53ef6ec 100644
--- a/OpenSim/Grid/UserServer/Main.cs
+++ b/OpenSim/Grid/UserServer/Main.cs
@@ -157,7 +157,6 @@ namespace OpenSim.Grid.UserServer
if (m_console is RemoteConsole)
{
- System.Console.WriteLine("Initialized REST console");
RemoteConsole c = (RemoteConsole)m_console;
c.SetServer(m_httpServer);
IConfig netConfig = m_config.AddConfig("Network");
diff --git a/prebuild.xml b/prebuild.xml
index 4f110c4487..216a02e5a3 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -911,6 +911,7 @@
+