Merge branch 'master' into careminster

This commit is contained in:
Melanie
2012-06-15 02:53:34 +01:00
9 changed files with 253 additions and 151 deletions

View File

@@ -42,42 +42,9 @@ namespace OpenSim.Server.Base
{
// Logger
//
private static readonly ILog m_Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly ILog m_Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// The http server instance
//
protected BaseHttpServer m_HttpServer = null;
protected uint m_Port = 0;
protected Dictionary<uint, BaseHttpServer> m_Servers =
new Dictionary<uint, BaseHttpServer>();
protected uint m_consolePort = 0;
public IHttpServer HttpServer
{
get { return m_HttpServer; }
}
public uint DefaultPort
{
get { return m_Port; }
}
public IHttpServer GetHttpServer(uint port)
{
m_Log.InfoFormat("[SERVER]: Requested port {0}", port);
if (port == m_Port)
return HttpServer;
if (m_Servers.ContainsKey(port))
return m_Servers[port];
m_Servers[port] = new BaseHttpServer(port);
m_Log.InfoFormat("[SERVER]: Starting new HTTP server on port {0}", port);
m_Servers[port].Start();
return m_Servers[port];
}
private uint m_consolePort;
// Handle all the automagical stuff
//
@@ -94,19 +61,21 @@ namespace OpenSim.Server.Base
System.Console.WriteLine("Section 'Network' not found, server can't start");
Thread.CurrentThread.Abort();
}
uint port = (uint)networkConfig.GetInt("port", 0);
if (port == 0)
{
Thread.CurrentThread.Abort();
}
//
bool ssl_main = networkConfig.GetBoolean("https_main",false);
bool ssl_listener = networkConfig.GetBoolean("https_listener",false);
m_consolePort = (uint)networkConfig.GetInt("ConsolePort", 0);
m_Port = port;
BaseHttpServer httpServer = null;
//
// This is where to make the servers:
//
@@ -118,8 +87,7 @@ namespace OpenSim.Server.Base
//
if ( !ssl_main )
{
m_HttpServer = new BaseHttpServer(port);
httpServer = new BaseHttpServer(port);
}
else
{
@@ -135,10 +103,12 @@ namespace OpenSim.Server.Base
System.Console.WriteLine("Password for X509 certificate is missing, server can't start.");
Thread.CurrentThread.Abort();
}
m_HttpServer = new BaseHttpServer(port, ssl_main, cert_path, cert_pass);
httpServer = new BaseHttpServer(port, ssl_main, cert_path, cert_pass);
}
MainServer.Instance = m_HttpServer;
MainServer.AddHttpServer(httpServer);
MainServer.Instance = httpServer;
// If https_listener = true, then add an ssl listener on the https_port...
if ( ssl_listener == true ) {
@@ -157,43 +127,24 @@ namespace OpenSim.Server.Base
System.Console.WriteLine("Password for X509 certificate is missing, server can't start.");
Thread.CurrentThread.Abort();
}
// Add our https_server
BaseHttpServer server = null;
server = new BaseHttpServer(https_port, ssl_listener, cert_path, cert_pass);
if (server != null)
{
m_Log.InfoFormat("[SERVER]: Starting HTTPS server on port {0}", https_port);
m_Servers.Add(https_port,server);
}
else
System.Console.WriteLine(String.Format("Failed to start HTTPS server on port {0}",https_port));
MainServer.AddHttpServer(new BaseHttpServer(https_port, ssl_listener, cert_path, cert_pass));
}
}
protected override void Initialise()
{
m_Log.InfoFormat("[SERVER]: Starting HTTP server on port {0}", m_HttpServer.Port);
m_HttpServer.Start();
foreach (BaseHttpServer s in MainServer.Servers.Values)
s.Start();
if (m_Servers.Count > 0)
{
foreach (BaseHttpServer s in m_Servers.Values)
{
if (!s.UseSSL)
m_Log.InfoFormat("[SERVER]: Starting HTTP server on port {0}", s.Port);
else
m_Log.InfoFormat("[SERVER]: Starting HTTPS server on port {0}", s.Port);
s.Start();
}
}
MainServer.RegisterHttpConsoleCommands(MainConsole.Instance);
if (MainConsole.Instance is RemoteConsole)
{
if (m_consolePort == 0)
((RemoteConsole)MainConsole.Instance).SetServer(m_HttpServer);
((RemoteConsole)MainConsole.Instance).SetServer(MainServer.Instance);
else
((RemoteConsole)MainConsole.Instance).SetServer(GetHttpServer(m_consolePort));
((RemoteConsole)MainConsole.Instance).SetServer(MainServer.GetHttpServer(m_consolePort));
}
}
}

View File

@@ -30,6 +30,7 @@ using log4net;
using System.Reflection;
using System;
using System.Collections.Generic;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Base;
using OpenSim.Server.Handlers.Base;
@@ -92,27 +93,24 @@ namespace OpenSim.Server
if (parts.Length > 1)
friendlyName = parts[1];
IHttpServer server = m_Server.HttpServer;
if (port != 0)
server = m_Server.GetHttpServer(port);
IHttpServer server;
if (port != m_Server.DefaultPort && port != 0)
m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, port);
if (port != 0)
server = MainServer.GetHttpServer(port);
else
m_log.InfoFormat("[SERVER]: Loading {0}", friendlyName);
server = MainServer.Instance;
m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, server.Port);
IServiceConnector connector = null;
Object[] modargs = new Object[] { m_Server.Config, server,
configName };
connector = ServerUtils.LoadPlugin<IServiceConnector>(conn,
modargs);
Object[] modargs = new Object[] { m_Server.Config, server, configName };
connector = ServerUtils.LoadPlugin<IServiceConnector>(conn, modargs);
if (connector == null)
{
modargs = new Object[] { m_Server.Config, server };
connector =
ServerUtils.LoadPlugin<IServiceConnector>(conn,
modargs);
connector = ServerUtils.LoadPlugin<IServiceConnector>(conn, modargs);
}
if (connector != null)
@@ -132,4 +130,4 @@ namespace OpenSim.Server
return 0;
}
}
}
}