diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index c94d328c43..5dfb30b80d 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -371,7 +371,7 @@ namespace OpenSim
/// Additional arguments passed to the command
public void RunCmd(string command, string[] cmdparams)
{
- if ((m_consoleRegion == null) || (command == "exit-region") || (command == "change-region"))
+ if ((m_consoleRegion == null) ||(command == "change-region"))
{
switch (command)
{
@@ -499,14 +499,29 @@ namespace OpenSim
case "change-region":
if (cmdparams.Length > 0)
{
- string name = this.CombineParams(cmdparams, 0);
- Console.WriteLine("Searching for Region: '" + name + "'");
- foreach (Scene scene in m_localScenes)
+ if ((cmdparams[0].ToLower() == "root") || (cmdparams[0].ToLower() == ".."))
{
- if (scene.RegionInfo.RegionName.ToLower() == name.ToLower())
+ if (m_consoleRegion != null)
{
- m_consoleRegion = scene;
- MainLog.Instance.Verbose("Setting current region: " + m_consoleRegion.RegionInfo.RegionName);
+ m_consoleRegion = null;
+ MainLog.Instance.Verbose("Now at Root level");
+ }
+ else
+ {
+ MainLog.Instance.Verbose("Already at Root level");
+ }
+ }
+ else
+ {
+ string name = this.CombineParams(cmdparams, 0);
+ Console.WriteLine("Searching for Region: '" + name + "'");
+ foreach (Scene scene in m_localScenes)
+ {
+ if (scene.RegionInfo.RegionName.ToLower() == name.ToLower())
+ {
+ m_consoleRegion = scene;
+ MainLog.Instance.Verbose("Setting current region: " + m_consoleRegion.RegionInfo.RegionName);
+ }
}
}
}
@@ -523,18 +538,6 @@ namespace OpenSim
}
break;
- case "exit-region":
- if (m_consoleRegion != null)
- {
- m_consoleRegion = null;
- MainLog.Instance.Verbose("Exiting region, Now at Root level");
- }
- else
- {
- MainLog.Instance.Verbose("No region is set. Already at Root level");
- }
- break;
-
default:
m_log.Error("Unknown command");
break;
diff --git a/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs
new file mode 100644
index 0000000000..2294631db4
--- /dev/null
+++ b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Region.Environment.Interfaces
+{
+ public interface IHttpRequests
+ {
+ LLUUID MakeHttpRequest(string url, string type, string body);
+ }
+}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index f8d17b43c9..dca4222216 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -93,6 +93,7 @@ namespace OpenSim.Region.Environment.Scenes
// this most likely shouldn't be handled as a API method like this, but doing it for testing purposes
public ModuleAPIMethod2 AddXferFile = null;
+ private IHttpRequests m_httpRequestModule = null;
private ISimChat m_simChatModule = null;
#region Properties
@@ -196,6 +197,7 @@ namespace OpenSim.Region.Environment.Scenes
public void SetModuleInterfaces()
{
m_simChatModule = this.RequestModuleInterface();
+ m_httpRequestModule = this.RequestModuleInterface();
//should change so it uses the module interface functions
AddXferFile = (ModuleAPIMethod2)this.RequestAPIMethod("API_AddXferFile");
@@ -1318,6 +1320,15 @@ namespace OpenSim.Region.Environment.Scenes
}
}
+ public LLUUID MakeHttpRequest(string url, string type, string body)
+ {
+ if (m_httpRequestModule != null)
+ {
+ return m_httpRequestModule.MakeHttpRequest(url, type, body);
+ }
+ return LLUUID.Zero;
+ }
+
#region Script Engine
private List ScriptEngines = new List();
public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger)