From 710856e3d34837eaba90f9fae893e6a59758802f Mon Sep 17 00:00:00 2001
From: MW
Date: Tue, 4 Sep 2007 17:53:21 +0000
Subject: Removed the exit-region command, now use "change-region root" or
 "change-region .." to change back to root level. [Would be nice if the
 command prompt changed to show what the current region was, but think that
 will need changes to the console code so for now it will have to stay as it
 is].

---
 OpenSim/Region/Application/OpenSimMain.cs          | 41 ++++++++++++----------
 .../Region/Environment/Interfaces/IHttpRequests.cs | 12 +++++++
 OpenSim/Region/Environment/Scenes/Scene.cs         | 11 ++++++
 3 files changed, 45 insertions(+), 19 deletions(-)
 create mode 100644 OpenSim/Region/Environment/Interfaces/IHttpRequests.cs

diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index c94d328..5dfb30b 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -371,7 +371,7 @@ namespace OpenSim
         /// <param name="cmdparams">Additional arguments passed to the command</param>
         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 0000000..2294631
--- /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 f8d17b4..dca4222 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<bool, string, byte[]> 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<ISimChat>();
+            m_httpRequestModule = this.RequestModuleInterface<IHttpRequests>();
 
             //should change so it uses the module interface functions
             AddXferFile = (ModuleAPIMethod2<bool, string, byte[]>)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<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface> ScriptEngines = new List<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface>();
         public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger)
-- 
cgit v1.1