From 80d4f76d182f919740d80b665a8cc445d014b540 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 9 Oct 2016 20:18:20 +0100 Subject: keep a unsecure http port up for external services (datasnapshot search). Only fire poolservices on main http listener --- .../Framework/Servers/HttpServer/BaseHttpServer.cs | 29 +++++++++++----------- OpenSim/Framework/Servers/MainServer.cs | 16 ++++++++++++ 2 files changed, 30 insertions(+), 15 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index af292c6..bd8b681 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -111,7 +111,6 @@ namespace OpenSim.Framework.Servers.HttpServer protected uint m_sslport; protected bool m_ssl; private X509Certificate2 m_cert; - protected bool m_firstcaps = true; protected string m_SSLCommonName = ""; protected List m_certNames = new List(); protected List m_certIPs = new List(); @@ -152,11 +151,6 @@ namespace OpenSim.Framework.Servers.HttpServer m_port = port; } - public BaseHttpServer(uint port, bool ssl) : this (port) - { - m_ssl = ssl; - } - private void load_cert(string CPath, string CPass) { try @@ -216,21 +210,24 @@ namespace OpenSim.Framework.Servers.HttpServer if(m_cert.Issuer == m_cert.Subject ) m_log.Warn("Self signed certificate. Clients need to allow this (some viewers debug option NoVerifySSLcert must be set to true"); - - } else m_ssl = false; } - public BaseHttpServer(uint port, bool ssl, string CPath, string CPass) : this (port, ssl) + public BaseHttpServer(uint port, bool ssl, string CPath, string CPass) { - if (m_ssl) + m_port = port; + if (ssl) { load_cert(CPath, CPass); if(m_cert.Issuer == m_cert.Subject ) m_log.Warn("Self signed certificate. Http clients need to allow this"); + m_ssl = true; + m_sslport = port; } + else + m_ssl = false; } static bool MatchDNS (string hostname, string dns) @@ -2038,7 +2035,7 @@ namespace OpenSim.Framework.Servers.HttpServer public void Start() { - Start(true); + Start(true,true); } /// @@ -2048,7 +2045,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// If true then poll responses are performed asynchronsly. /// Option exists to allow regression tests to perform processing synchronously. /// - public void Start(bool performPollResponsesAsync) + public void Start(bool performPollResponsesAsync, bool runPool) { m_log.InfoFormat( "[BASE HTTP SERVER]: Starting {0} server on port {1}", UseSSL ? "HTTPS" : "HTTP", Port); @@ -2086,9 +2083,11 @@ namespace OpenSim.Framework.Servers.HttpServer m_httpListener2.Start(64); // Long Poll Service Manager with 3 worker threads a 25 second timeout for no events - - PollServiceRequestManager = new PollServiceRequestManager(this, performPollResponsesAsync, 2, 25000); - PollServiceRequestManager.Start(); + if(runPool) + { + PollServiceRequestManager = new PollServiceRequestManager(this, performPollResponsesAsync, 2, 25000); + PollServiceRequestManager.Start(); + } HTTPDRunning = true; diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs index 57931d4..e9c284c 100644 --- a/OpenSim/Framework/Servers/MainServer.cs +++ b/OpenSim/Framework/Servers/MainServer.cs @@ -42,6 +42,7 @@ namespace OpenSim.Framework.Servers // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static BaseHttpServer instance = null; + private static BaseHttpServer unsecureinstance = null; private static Dictionary m_Servers = new Dictionary(); /// @@ -93,6 +94,21 @@ namespace OpenSim.Framework.Servers } } + + public static BaseHttpServer ÚnSecureInstance + { + get { return unsecureinstance; } + + set + { + lock (m_Servers) + if (!m_Servers.ContainsValue(value)) + throw new Exception("HTTP server must already have been registered to be set as the main instance"); + + unsecureinstance = value; + } + } + /// /// Get all the registered servers. /// -- cgit v1.1