diff --git a/OpenSim/ApplicationPlugins/RemoteController/Properties/AssemblyInfo.cs b/OpenSim/ApplicationPlugins/RemoteController/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..869efe2645
--- /dev/null
+++ b/OpenSim/ApplicationPlugins/RemoteController/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("RemoteController")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("RemoteController")]
+[assembly: AssemblyCopyright("Copyright © 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a8d10dbc-371b-4514-8d1d-7d3589f658af")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/ApplicationPlugins/RemoteController/Properties/Settings.Designer.cs b/OpenSim/ApplicationPlugins/RemoteController/Properties/Settings.Designer.cs
new file mode 100644
index 0000000000..86daae1eb4
--- /dev/null
+++ b/OpenSim/ApplicationPlugins/RemoteController/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.832
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace RemoteController.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/OpenSim/Region/Application/OpenSimController.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
similarity index 68%
rename from OpenSim/Region/Application/OpenSimController.cs
rename to OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 9fae426442..2566a6bbfc 100644
--- a/OpenSim/Region/Application/OpenSimController.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -1,122 +1,139 @@
-using System;
-using System.Collections;
-using System.Net;
-using System.Timers;
-using Nwc.XmlRpc;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-
-namespace OpenSim
-{
- internal class OpenSimController
- {
- private OpenSimMain m_app;
- private BaseHttpServer m_httpServer;
- private const bool m_enablexmlrpc = true;
-
- public OpenSimController(OpenSimMain core, BaseHttpServer httpd)
- {
- m_app = core;
- m_httpServer = httpd;
-
- if (m_enablexmlrpc)
- {
- m_httpServer.AddXmlRPCHandler("admin_create_region", XmlRpcCreateRegionMethod);
- m_httpServer.AddXmlRPCHandler("admin_shutdown", XmlRpcShutdownMethod);
- }
- }
-
- public XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
- {
- MainLog.Instance.Verbose("CONTROLLER", "Recieved Shutdown Administrator Request");
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable) request.Params[0];
-
- if ((string) requestData["shutdown"] == "delayed")
- {
- int timeout = (Int32)requestData["milliseconds"];
-
- Hashtable responseData = new Hashtable();
- responseData["accepted"] = "true";
- response.Value = responseData;
-
- m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int) (timeout/1000)).ToString() +
- " second(s). Please save what you are doing and log out.");
-
- // Perform shutdown
- Timer shutdownTimer = new Timer(timeout); // Wait before firing
- shutdownTimer.AutoReset = false;
- shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
- shutdownTimer.Start();
-
- return response;
- }
- else
- {
- Hashtable responseData = new Hashtable();
- responseData["accepted"] = "true";
- response.Value = responseData;
-
- m_app.SceneManager.SendGeneralMessage("Region is going down now.");
-
- // Perform shutdown
- Timer shutdownTimer = new Timer(2000); // Wait 2 seconds before firing
- shutdownTimer.AutoReset = false;
- shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
- shutdownTimer.Start();
-
- return response;
- }
- }
-
- private void shutdownTimer_Elapsed(object sender, ElapsedEventArgs e)
- {
- m_app.Shutdown();
- }
-
- public XmlRpcResponse XmlRpcCreateRegionMethod(XmlRpcRequest request)
- {
- MainLog.Instance.Verbose("CONTROLLER", "Recieved Create Region Administrator Request");
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable) request.Params[0];
-
- RegionInfo newRegionData = new RegionInfo();
-
- try
- {
- newRegionData.RegionID = (string)requestData["region_id"];
- newRegionData.RegionName = (string)requestData["region_name"];
- newRegionData.RegionLocX = Convert.ToUInt32((Int32)requestData["region_x"]);
- newRegionData.RegionLocY = Convert.ToUInt32((Int32)requestData["region_y"]);
-
- // Security risk
- newRegionData.DataStore = (string) requestData["datastore"];
-
- newRegionData.InternalEndPoint = new IPEndPoint(
- IPAddress.Parse((string) requestData["listen_ip"]), 0);
-
- newRegionData.InternalEndPoint.Port = (Int32)requestData["listen_port"];
- newRegionData.ExternalHostName = (string)requestData["external_address"];
-
- newRegionData.MasterAvatarFirstName = (string) requestData["region_master_first"];
- newRegionData.MasterAvatarLastName = (string) requestData["region_master_last"];
-
- m_app.CreateRegion(newRegionData);
-
- Hashtable responseData = new Hashtable();
- responseData["created"] = "true";
- response.Value = responseData;
- }
- catch (Exception e)
- {
- Hashtable responseData = new Hashtable();
- responseData["created"] = "false";
- responseData["error"] = e.ToString();
- response.Value = responseData;
- }
-
- return response;
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Net;
+using OpenSim;
+using OpenSim.Framework.Console;
+using OpenSim.Framework;
+using OpenSim.Framework.Servers;
+using Mono.Addins;
+using Mono.Addins.Description;
+using Nini;
+using Nini.Config;
+using Nwc.XmlRpc;
+using System.Collections;
+using System.Timers;
+
+[assembly: Addin]
+[assembly: AddinDependency("OpenSim", "0.4")]
+
+namespace OpenSim.ApplicationPlugins.LoadRegions
+{
+ [Extension("/OpenSim/Startup")]
+ public class RemoteAdminPlugin : IApplicationPlugin
+ {
+ private OpenSimMain m_app;
+ private BaseHttpServer m_httpd;
+
+ public void Initialise(OpenSimMain openSim)
+ {
+ if (openSim.ConfigSource.Configs["RemoteAdmin"].GetBoolean("enabled", false))
+ {
+ System.Console.WriteLine("RADMIN","Remote Admin Plugin Enabled");
+
+ m_app = openSim;
+ m_httpd = openSim.HttpServer;
+
+ m_httpd.AddXmlRPCHandler("admin_create_region", XmlRpcCreateRegionMethod);
+ m_httpd.AddXmlRPCHandler("admin_shutdown", XmlRpcShutdownMethod);
+ }
+ }
+
+ public XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
+ {
+ MainLog.Instance.Verbose("CONTROLLER", "Recieved Shutdown Administrator Request");
+ XmlRpcResponse response = new XmlRpcResponse();
+ Hashtable requestData = (Hashtable)request.Params[0];
+
+ if ((string)requestData["shutdown"] == "delayed")
+ {
+ int timeout = (Int32)requestData["milliseconds"];
+
+ Hashtable responseData = new Hashtable();
+ responseData["accepted"] = "true";
+ response.Value = responseData;
+
+ m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int)(timeout / 1000)).ToString() +
+ " second(s). Please save what you are doing and log out.");
+
+ // Perform shutdown
+ Timer shutdownTimer = new Timer(timeout); // Wait before firing
+ shutdownTimer.AutoReset = false;
+ shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
+ shutdownTimer.Start();
+
+ return response;
+ }
+ else
+ {
+ Hashtable responseData = new Hashtable();
+ responseData["accepted"] = "true";
+ response.Value = responseData;
+
+ m_app.SceneManager.SendGeneralMessage("Region is going down now.");
+
+ // Perform shutdown
+ Timer shutdownTimer = new Timer(2000); // Wait 2 seconds before firing
+ shutdownTimer.AutoReset = false;
+ shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
+ shutdownTimer.Start();
+
+ return response;
+ }
+ }
+
+ private void shutdownTimer_Elapsed(object sender, ElapsedEventArgs e)
+ {
+ m_app.Shutdown();
+ }
+
+ public XmlRpcResponse XmlRpcCreateRegionMethod(XmlRpcRequest request)
+ {
+ MainLog.Instance.Verbose("CONTROLLER", "Recieved Create Region Administrator Request");
+ XmlRpcResponse response = new XmlRpcResponse();
+ Hashtable requestData = (Hashtable)request.Params[0];
+
+ RegionInfo newRegionData = new RegionInfo();
+
+ try
+ {
+ newRegionData.RegionID = (string)requestData["region_id"];
+ newRegionData.RegionName = (string)requestData["region_name"];
+ newRegionData.RegionLocX = Convert.ToUInt32((Int32)requestData["region_x"]);
+ newRegionData.RegionLocY = Convert.ToUInt32((Int32)requestData["region_y"]);
+
+ // Security risk
+ newRegionData.DataStore = (string)requestData["datastore"];
+
+ newRegionData.InternalEndPoint = new IPEndPoint(
+ IPAddress.Parse((string)requestData["listen_ip"]), 0);
+
+ newRegionData.InternalEndPoint.Port = (Int32)requestData["listen_port"];
+ newRegionData.ExternalHostName = (string)requestData["external_address"];
+
+ newRegionData.MasterAvatarFirstName = (string)requestData["region_master_first"];
+ newRegionData.MasterAvatarLastName = (string)requestData["region_master_last"];
+
+ m_app.CreateRegion(newRegionData);
+
+ Hashtable responseData = new Hashtable();
+ responseData["created"] = "true";
+ response.Value = responseData;
+ }
+ catch (Exception e)
+ {
+ Hashtable responseData = new Hashtable();
+ responseData["created"] = "false";
+ responseData["error"] = e.ToString();
+ response.Value = responseData;
+ }
+
+ return response;
+ }
+
+ public void Close()
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 51a647d075..9fd5bccf4e 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -61,8 +61,6 @@ namespace OpenSim
public bool m_gridLocalAsset;
public bool m_SendChildAgentTaskData;
- private OpenSimController m_controller;
-
protected LocalLoginService m_loginService;
protected string m_storageDll;
@@ -102,6 +100,11 @@ namespace OpenSim
set { m_config = value; }
}
+ public BaseHttpServer HttpServer
+ {
+ get { return m_httpServer; }
+ }
+
private ModuleLoader m_moduleLoader;
public ModuleLoader ModuleLoader
@@ -279,8 +282,6 @@ namespace OpenSim
base.StartUp();
- m_controller = new OpenSimController(this, m_httpServer);
-
if (m_sandbox)
{
LocalInventoryService inventoryService = new LocalInventoryService();
diff --git a/prebuild.xml b/prebuild.xml
index 4301057732..4705fc762a 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -767,6 +767,36 @@
+
+
+
+ ../../../bin/
+
+
+
+
+ ../../../bin/
+
+
+
+ ../../../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+