protected override void StartupSpecific()
{
SceneManager = SceneManager.Instance;
Initialize();
IPAddress ipaddress = m_networkServersInfo.HttpListenerAddress;
uint mainport = m_networkServersInfo.HttpListenerPort;
uint mainSSLport = m_networkServersInfo.httpSSLPort;
if (m_networkServersInfo.HttpUsesSSL && (mainport == mainSSLport))
{
m_log.Error("[REGION SERVER]: HTTP Server config failed. HTTP Server and HTTPS server must be on different ports");
}
if(m_networkServersInfo.HttpUsesSSL)
{
m_httpServer = new BaseHttpServer(
mainSSLport, m_networkServersInfo.HttpUsesSSL,
m_networkServersInfo.HttpSSLCN,
m_networkServersInfo.HttpSSLCertPath, m_networkServersInfo.HttpSSLCNCertPass);
m_httpServer.Start();
MainServer.AddHttpServer(m_httpServer);
}
// unsecure main server
BaseHttpServer server = new BaseHttpServer(ipaddress, mainport);
if(!m_networkServersInfo.HttpUsesSSL)
{
m_httpServer = server;
server.Start(m_networkServersInfo.HttpListenerPortMin, m_networkServersInfo.HttpListenerPortMax);
// hack: update the config to the selected port
m_networkServersInfo.HttpListenerPort = server.Port;
Config.Configs["Network"].Set("http_listener_port", server.Port);
m_httpServerPort = server.Port;
}
else
server.Start();
MainServer.AddHttpServer(server);
MainServer.UnSecureInstance = server;
MainServer.Instance = m_httpServer;
// "OOB" Server
if (m_networkServersInfo.ssl_listener)
{
if (!m_networkServersInfo.ssl_external)
{
server = new BaseHttpServer(
m_networkServersInfo.https_port, m_networkServersInfo.ssl_listener,
m_networkServersInfo.cert_path,
m_networkServersInfo.cert_pass);
m_log.InfoFormat("[REGION SERVER]: Starting OOB HTTPS server on port {0}", server.SSLPort);
server.Start();
MainServer.AddHttpServer(server);
}
else
{
server = new BaseHttpServer(m_networkServersInfo.https_port);
m_log.InfoFormat("[REGION SERVER]: Starting HTTP server on port {0} for external HTTPS", server.Port);
server.Start();
MainServer.AddHttpServer(server);
}
}
base.StartupSpecific();
}