From 8ca793875318efc8db3339b25bf7fa5ddeeac218 Mon Sep 17 00:00:00 2001
From: BlueWall
Date: Sun, 1 May 2011 14:44:09 -0400
Subject: Adding ssl support
Adding ssl support for "Out of Band" applications such as the remote
admin module or Robust services
---
OpenSim/Framework/MainServer.cs | 5 +++++
OpenSim/Framework/NetworkServersInfo.cs | 15 +++++++++++++++
OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 14 ++++++++++++++
3 files changed, 34 insertions(+)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/MainServer.cs b/OpenSim/Framework/MainServer.cs
index 0515b16..a3e0a26 100644
--- a/OpenSim/Framework/MainServer.cs
+++ b/OpenSim/Framework/MainServer.cs
@@ -52,6 +52,11 @@ namespace OpenSim.Framework
return GetHttpServer(port,null);
}
+ public static void AddHttpServer(BaseHttpServer server)
+ {
+ m_Servers.Add(server.Port, server);
+ }
+
public static IHttpServer GetHttpServer(uint port, IPAddress ipaddr)
{
if (port == 0)
diff --git a/OpenSim/Framework/NetworkServersInfo.cs b/OpenSim/Framework/NetworkServersInfo.cs
index b25f8b9..5bb4111 100644
--- a/OpenSim/Framework/NetworkServersInfo.cs
+++ b/OpenSim/Framework/NetworkServersInfo.cs
@@ -49,6 +49,12 @@ namespace OpenSim.Framework
public string HttpSSLCN = "";
public uint httpSSLPort = 9001;
+ // "Out of band" managemnt https
+ public bool ssl_listener = false;
+ public uint https_port = 0;
+ public string cert_path = String.Empty;
+ public string cert_pass = String.Empty;
+
public string MessagingURL = String.Empty;
public NetworkServersInfo()
@@ -86,6 +92,15 @@ namespace OpenSim.Framework
secureInventoryServer = config.Configs["Network"].GetBoolean("secure_inventory_server", true);
MessagingURL = config.Configs["Network"].GetString("messaging_server_url", string.Empty);
+
+ // "Out of band management https"
+ ssl_listener = config.Configs["Network"].GetBoolean("https_listener",false);
+ if( ssl_listener)
+ {
+ cert_path = config.Configs["Network"].GetString("cert_path",String.Empty);
+ cert_pass = config.Configs["Network"].GetString("cert_pass",String.Empty);
+ https_port = (uint)config.Configs["Network"].GetInt("https_port", 0);
+ }
}
}
}
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index ba89e21..598e5d1 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -32,6 +32,7 @@ using System.Collections.Specialized;
using System.IO;
using System.Net;
using System.Net.Sockets;
+using System.Security.Cryptography.X509Certificates;
using System.Reflection;
using System.Globalization;
using System.Text;
@@ -72,6 +73,7 @@ namespace OpenSim.Framework.Servers.HttpServer
protected uint m_port;
protected uint m_sslport;
protected bool m_ssl;
+ private X509Certificate2 m_cert;
protected bool m_firstcaps = true;
protected string m_SSLCommonName = "";
@@ -123,6 +125,14 @@ namespace OpenSim.Framework.Servers.HttpServer
}
}
+ public BaseHttpServer(uint port, bool ssl, string CPath, string CPass) : this (port, ssl)
+ {
+ if (m_ssl)
+ {
+ m_cert = new X509Certificate2(CPath, CPass);
+ }
+ }
+
///
/// Add a stream handler to the http server. If the handler already exists, then nothing happens.
///
@@ -1683,6 +1693,7 @@ namespace OpenSim.Framework.Servers.HttpServer
try
{
//m_httpListener = new HttpListener();
+
NotSocketErrors = 0;
if (!m_ssl)
{
@@ -1702,6 +1713,9 @@ namespace OpenSim.Framework.Servers.HttpServer
{
//m_httpListener.Prefixes.Add("https://+:" + (m_sslport) + "/");
//m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
+ m_httpListener2 = CoolHTTPListener.Create(IPAddress.Any, (int)m_port, m_cert);
+ m_httpListener2.ExceptionThrown += httpServerException;
+ m_httpListener2.LogWriter = httpserverlog;
}
m_httpListener2.RequestReceived += OnRequest;
--
cgit v1.1
From f5ec332474ef5b7ee8e2588a1783f756f0a64525 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 6 May 2011 22:41:07 +0100
Subject: remove obsolete [StandAlone] config section parsing, none of which
was actually used since being superseded by the connector architecture in 0.7
---
OpenSim/Framework/ConfigSettings.cs | 50 +------------------------------------
1 file changed, 1 insertion(+), 49 deletions(-)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/ConfigSettings.cs b/OpenSim/Framework/ConfigSettings.cs
index be77341..9114e00 100644
--- a/OpenSim/Framework/ConfigSettings.cs
+++ b/OpenSim/Framework/ConfigSettings.cs
@@ -76,54 +76,6 @@ namespace OpenSim.Framework
set { m_physicalPrim = value; }
}
- private bool m_standaloneAuthenticate = false;
-
- public bool StandaloneAuthenticate
- {
- get { return m_standaloneAuthenticate; }
- set { m_standaloneAuthenticate = value; }
- }
-
- private string m_standaloneWelcomeMessage = null;
-
- public string StandaloneWelcomeMessage
- {
- get { return m_standaloneWelcomeMessage; }
- set { m_standaloneWelcomeMessage = value; }
- }
-
- private string m_standaloneInventoryPlugin;
-
- public string StandaloneInventoryPlugin
- {
- get { return m_standaloneInventoryPlugin; }
- set { m_standaloneInventoryPlugin = value; }
- }
-
- private string m_standaloneUserPlugin;
-
- public string StandaloneUserPlugin
- {
- get { return m_standaloneUserPlugin; }
- set { m_standaloneUserPlugin = value; }
- }
-
- private string m_standaloneInventorySource;
-
- public string StandaloneInventorySource
- {
- get { return m_standaloneInventorySource; }
- set { m_standaloneInventorySource = value; }
- }
-
- private string m_standaloneUserSource;
-
- public string StandaloneUserSource
- {
- get { return m_standaloneUserSource; }
- set { m_standaloneUserSource = value; }
- }
-
protected string m_librariesXMLFile;
public string LibrariesXMLFile
{
@@ -146,4 +98,4 @@ namespace OpenSim.Framework
public const uint DefaultGridServerHttpPort = 8003;
public const uint DefaultInventoryServerHttpPort = 8003;
}
-}
+}
\ No newline at end of file
--
cgit v1.1
From 3d095e84d63e97e88bcb946498eba14de81705b4 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 6 May 2011 22:45:03 +0100
Subject: minor: remove mono compiler warnings
---
OpenSim/Framework/ChildAgentDataUpdate.cs | 2 +-
OpenSim/Framework/PriorityQueue.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs
index 28fe3ba..710a57d 100644
--- a/OpenSim/Framework/ChildAgentDataUpdate.cs
+++ b/OpenSim/Framework/ChildAgentDataUpdate.cs
@@ -460,7 +460,7 @@ namespace OpenSim.Framework
{
info["state"] = OSD.FromString(AttachmentObjectStates[i++]);
}
- catch (IndexOutOfRangeException e)
+ catch (IndexOutOfRangeException)
{
m_log.WarnFormat("[CHILD AGENT DATA]: scripts list is shorter than object list.");
}
diff --git a/OpenSim/Framework/PriorityQueue.cs b/OpenSim/Framework/PriorityQueue.cs
index 3e6fdaa..e7a7f7f 100644
--- a/OpenSim/Framework/PriorityQueue.cs
+++ b/OpenSim/Framework/PriorityQueue.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Framework
{
public class PriorityQueue
{
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public delegate bool UpdatePriorityHandler(ref uint priority, ISceneEntity entity);
--
cgit v1.1
From b140aef87a18a5dd388abfc7afeeac7a417b6a83 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 6 May 2011 22:51:36 +0100
Subject: refactor: simplify ConfigSettings
---
OpenSim/Framework/ConfigSettings.cs | 66 ++++---------------------------------
1 file changed, 7 insertions(+), 59 deletions(-)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/ConfigSettings.cs b/OpenSim/Framework/ConfigSettings.cs
index 9114e00..50328d7 100644
--- a/OpenSim/Framework/ConfigSettings.cs
+++ b/OpenSim/Framework/ConfigSettings.cs
@@ -29,65 +29,13 @@ namespace OpenSim.Framework
{
public class ConfigSettings
{
- private string m_physicsEngine;
-
- public string PhysicsEngine
- {
- get { return m_physicsEngine; }
- set { m_physicsEngine = value; }
- }
- private string m_meshEngineName;
-
- public string MeshEngineName
- {
- get { return m_meshEngineName; }
- set { m_meshEngineName = value; }
- }
-
- private bool m_see_into_region_from_neighbor;
-
- public bool See_into_region_from_neighbor
- {
- get { return m_see_into_region_from_neighbor; }
- set { m_see_into_region_from_neighbor = value; }
- }
-
- private string m_storageDll;
-
- public string StorageDll
- {
- get { return m_storageDll; }
- set { m_storageDll = value; }
- }
-
- private string m_clientstackDll;
-
- public string ClientstackDll
- {
- get { return m_clientstackDll; }
- set { m_clientstackDll = value; }
- }
-
- private bool m_physicalPrim;
-
- public bool PhysicalPrim
- {
- get { return m_physicalPrim; }
- set { m_physicalPrim = value; }
- }
-
- protected string m_librariesXMLFile;
- public string LibrariesXMLFile
- {
- get
- {
- return m_librariesXMLFile;
- }
- set
- {
- m_librariesXMLFile = value;
- }
- }
+ public string PhysicsEngine { get; set; }
+ public string MeshEngineName { get; set; }
+ public bool See_into_region_from_neighbor { get; set; }
+ public string StorageDll { get; set; }
+ public string ClientstackDll { get; set; }
+ public bool PhysicalPrim { get; set; }
+ public string LibrariesXMLFile { get; set; }
public const uint DefaultAssetServerHttpPort = 8003;
public const uint DefaultRegionHttpPort = 9000;
--
cgit v1.1
From 737add1683b0d3bf0441807429dc10306963f638 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Fri, 6 May 2011 17:02:46 -0700
Subject: Removed SimpleRegionInfo, which was obsolete and not used anywhere.
---
OpenSim/Framework/RegionInfo.cs | 245 ----------------------------------------
1 file changed, 245 deletions(-)
(limited to 'OpenSim/Framework')
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 239ce3d..4c007d6 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -96,251 +96,6 @@ namespace OpenSim.Framework
}
- [Serializable]
- public class SimpleRegionInfo
- {
-// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- ///
- /// The port by which http communication occurs with the region (most noticeably, CAPS communication)
- ///
- public uint HttpPort
- {
- get { return m_httpPort; }
- set { m_httpPort = value; }
- }
- protected uint m_httpPort;
-
- ///
- /// A well-formed URI for the host region server (namely "http://" + ExternalHostName)
- ///
- public string ServerURI
- {
- get {
- if ( m_serverURI != string.Empty ) {
- return m_serverURI;
- } else {
- return "http://" + m_externalHostName + ":" + m_httpPort + "/";
- }
- }
- set {
- if ( value.EndsWith("/") ) {
- m_serverURI = value;
- } else {
- m_serverURI = value + '/';
- }
- }
- }
- protected string m_serverURI;
-
- public string RegionName
- {
- get { return m_regionName; }
- set { m_regionName = value; }
- }
- protected string m_regionName = String.Empty;
-
- protected bool Allow_Alternate_Ports;
- public bool m_allow_alternate_ports;
- protected string m_externalHostName;
-
- protected IPEndPoint m_internalEndPoint;
- protected uint? m_regionLocX;
- protected uint? m_regionLocY;
- protected uint m_remotingPort;
- public UUID RegionID = UUID.Zero;
- public string RemotingAddress;
- public UUID ScopeID = UUID.Zero;
-
- public SimpleRegionInfo()
- {
- m_serverURI = string.Empty;
- }
-
- public SimpleRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
- {
- m_regionLocX = regionLocX;
- m_regionLocY = regionLocY;
-
- m_internalEndPoint = internalEndPoint;
- m_externalHostName = externalUri;
- m_serverURI = string.Empty;
- }
-
- public SimpleRegionInfo(uint regionLocX, uint regionLocY, string externalUri, uint port)
- {
- m_regionLocX = regionLocX;
- m_regionLocY = regionLocY;
-
- m_externalHostName = externalUri;
-
- m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int) port);
- m_serverURI = string.Empty;
- }
-
- public SimpleRegionInfo(RegionInfo ConvertFrom)
- {
- m_regionName = ConvertFrom.RegionName;
- m_regionLocX = ConvertFrom.RegionLocX;
- m_regionLocY = ConvertFrom.RegionLocY;
- m_internalEndPoint = ConvertFrom.InternalEndPoint;
- m_externalHostName = ConvertFrom.ExternalHostName;
- m_remotingPort = ConvertFrom.RemotingPort;
- m_httpPort = ConvertFrom.HttpPort;
- m_allow_alternate_ports = ConvertFrom.m_allow_alternate_ports;
- RemotingAddress = ConvertFrom.RemotingAddress;
- RegionID = UUID.Zero;
- ServerURI = ConvertFrom.ServerURI;
- }
-
- public uint RemotingPort
- {
- get { return m_remotingPort; }
- set { m_remotingPort = value; }
- }
-
- ///
- /// This accessor can throw all the exceptions that Dns.GetHostAddresses can throw.
- ///
- /// XXX Isn't this really doing too much to be a simple getter, rather than an explict method?
- ///
- public IPEndPoint ExternalEndPoint
- {
- get
- {
- // Old one defaults to IPv6
- //return new IPEndPoint(Dns.GetHostAddresses(m_externalHostName)[0], m_internalEndPoint.Port);
-
- IPAddress ia = null;
- // If it is already an IP, don't resolve it - just return directly
- if (IPAddress.TryParse(m_externalHostName, out ia))
- return new IPEndPoint(ia, m_internalEndPoint.Port);
-
- // Reset for next check
- ia = null;
- try
- {
- foreach (IPAddress Adr in Dns.GetHostAddresses(m_externalHostName))
- {
- if (ia == null)
- ia = Adr;
-
- if (Adr.AddressFamily == AddressFamily.InterNetwork)
- {
- ia = Adr;
- break;
- }
- }
- }
- catch (SocketException e)
- {
- throw new Exception(
- "Unable to resolve local hostname " + m_externalHostName + " innerException of type '" +
- e + "' attached to this exception", e);
- }
-
- return new IPEndPoint(ia, m_internalEndPoint.Port);
- }
-
- set { m_externalHostName = value.ToString(); }
- }
-
- public string ExternalHostName
- {
- get { return m_externalHostName; }
- set { m_externalHostName = value; }
- }
-
- public IPEndPoint InternalEndPoint
- {
- get { return m_internalEndPoint; }
- set { m_internalEndPoint = value; }
- }
-
- public uint RegionLocX
- {
- get { return m_regionLocX.Value; }
- set { m_regionLocX = value; }
- }
-
- public uint RegionLocY
- {
- get { return m_regionLocY.Value; }
- set { m_regionLocY = value; }
- }
-
- public ulong RegionHandle
- {
- get { return Util.UIntsToLong((RegionLocX * (uint) Constants.RegionSize), (RegionLocY * (uint) Constants.RegionSize)); }
- }
-
- public int getInternalEndPointPort()
- {
- return m_internalEndPoint.Port;
- }
-
- public Dictionary ToKeyValuePairs()
- {
- Dictionary kvp = new Dictionary();
- kvp["uuid"] = RegionID.ToString();
- kvp["locX"] = RegionLocX.ToString();
- kvp["locY"] = RegionLocY.ToString();
- kvp["external_ip_address"] = ExternalEndPoint.Address.ToString();
- kvp["external_port"] = ExternalEndPoint.Port.ToString();
- kvp["external_host_name"] = ExternalHostName;
- kvp["http_port"] = HttpPort.ToString();
- kvp["internal_ip_address"] = InternalEndPoint.Address.ToString();
- kvp["internal_port"] = InternalEndPoint.Port.ToString();
- kvp["alternate_ports"] = m_allow_alternate_ports.ToString();
- kvp["server_uri"] = ServerURI;
-
- return kvp;
- }
-
- public SimpleRegionInfo(Dictionary kvp)
- {
- if ((kvp["external_ip_address"] != null) && (kvp["external_port"] != null))
- {
- int port = 0;
- Int32.TryParse((string)kvp["external_port"], out port);
- IPEndPoint ep = new IPEndPoint(IPAddress.Parse((string)kvp["external_ip_address"]), port);
- ExternalEndPoint = ep;
- }
- else
- ExternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
-
- if (kvp["external_host_name"] != null)
- ExternalHostName = (string)kvp["external_host_name"];
-
- if (kvp["http_port"] != null)
- {
- UInt32 port = 0;
- UInt32.TryParse((string)kvp["http_port"], out port);
- HttpPort = port;
- }
-
- if ((kvp["internal_ip_address"] != null) && (kvp["internal_port"] != null))
- {
- int port = 0;
- Int32.TryParse((string)kvp["internal_port"], out port);
- IPEndPoint ep = new IPEndPoint(IPAddress.Parse((string)kvp["internal_ip_address"]), port);
- InternalEndPoint = ep;
- }
- else
- InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
-
- if (kvp["alternate_ports"] != null)
- {
- bool alts = false;
- Boolean.TryParse((string)kvp["alternate_ports"], out alts);
- m_allow_alternate_ports = alts;
- }
-
- if (kvp["server_uri"] != null)
- ServerURI = (string)kvp["server_uri"];
- }
- }
-
public class RegionInfo
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
--
cgit v1.1