diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Server/Base/HttpServerBase.cs | 87 | ||||
-rw-r--r-- | OpenSim/Server/ServerMain.cs | 26 |
2 files changed, 31 insertions, 82 deletions
diff --git a/OpenSim/Server/Base/HttpServerBase.cs b/OpenSim/Server/Base/HttpServerBase.cs index d471559..7ba0ca8 100644 --- a/OpenSim/Server/Base/HttpServerBase.cs +++ b/OpenSim/Server/Base/HttpServerBase.cs | |||
@@ -42,42 +42,9 @@ namespace OpenSim.Server.Base | |||
42 | { | 42 | { |
43 | // Logger | 43 | // Logger |
44 | // | 44 | // |
45 | private static readonly ILog m_Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | // The http server instance | 47 | private uint m_consolePort; |
48 | // | ||
49 | protected BaseHttpServer m_HttpServer = null; | ||
50 | protected uint m_Port = 0; | ||
51 | protected Dictionary<uint, BaseHttpServer> m_Servers = | ||
52 | new Dictionary<uint, BaseHttpServer>(); | ||
53 | protected uint m_consolePort = 0; | ||
54 | |||
55 | public IHttpServer HttpServer | ||
56 | { | ||
57 | get { return m_HttpServer; } | ||
58 | } | ||
59 | |||
60 | public uint DefaultPort | ||
61 | { | ||
62 | get { return m_Port; } | ||
63 | } | ||
64 | |||
65 | public IHttpServer GetHttpServer(uint port) | ||
66 | { | ||
67 | m_Log.InfoFormat("[SERVER]: Requested port {0}", port); | ||
68 | if (port == m_Port) | ||
69 | return HttpServer; | ||
70 | |||
71 | if (m_Servers.ContainsKey(port)) | ||
72 | return m_Servers[port]; | ||
73 | |||
74 | m_Servers[port] = new BaseHttpServer(port); | ||
75 | |||
76 | m_Log.InfoFormat("[SERVER]: Starting new HTTP server on port {0}", port); | ||
77 | m_Servers[port].Start(); | ||
78 | |||
79 | return m_Servers[port]; | ||
80 | } | ||
81 | 48 | ||
82 | // Handle all the automagical stuff | 49 | // Handle all the automagical stuff |
83 | // | 50 | // |
@@ -94,19 +61,21 @@ namespace OpenSim.Server.Base | |||
94 | System.Console.WriteLine("Section 'Network' not found, server can't start"); | 61 | System.Console.WriteLine("Section 'Network' not found, server can't start"); |
95 | Thread.CurrentThread.Abort(); | 62 | Thread.CurrentThread.Abort(); |
96 | } | 63 | } |
64 | |||
97 | uint port = (uint)networkConfig.GetInt("port", 0); | 65 | uint port = (uint)networkConfig.GetInt("port", 0); |
98 | 66 | ||
99 | if (port == 0) | 67 | if (port == 0) |
100 | { | 68 | { |
101 | |||
102 | Thread.CurrentThread.Abort(); | 69 | Thread.CurrentThread.Abort(); |
103 | } | 70 | } |
104 | // | 71 | |
105 | bool ssl_main = networkConfig.GetBoolean("https_main",false); | 72 | bool ssl_main = networkConfig.GetBoolean("https_main",false); |
106 | bool ssl_listener = networkConfig.GetBoolean("https_listener",false); | 73 | bool ssl_listener = networkConfig.GetBoolean("https_listener",false); |
107 | 74 | ||
108 | m_consolePort = (uint)networkConfig.GetInt("ConsolePort", 0); | 75 | m_consolePort = (uint)networkConfig.GetInt("ConsolePort", 0); |
109 | m_Port = port; | 76 | |
77 | BaseHttpServer httpServer = null; | ||
78 | |||
110 | // | 79 | // |
111 | // This is where to make the servers: | 80 | // This is where to make the servers: |
112 | // | 81 | // |
@@ -118,8 +87,7 @@ namespace OpenSim.Server.Base | |||
118 | // | 87 | // |
119 | if ( !ssl_main ) | 88 | if ( !ssl_main ) |
120 | { | 89 | { |
121 | m_HttpServer = new BaseHttpServer(port); | 90 | httpServer = new BaseHttpServer(port); |
122 | |||
123 | } | 91 | } |
124 | else | 92 | else |
125 | { | 93 | { |
@@ -135,10 +103,12 @@ namespace OpenSim.Server.Base | |||
135 | System.Console.WriteLine("Password for X509 certificate is missing, server can't start."); | 103 | System.Console.WriteLine("Password for X509 certificate is missing, server can't start."); |
136 | Thread.CurrentThread.Abort(); | 104 | Thread.CurrentThread.Abort(); |
137 | } | 105 | } |
138 | m_HttpServer = new BaseHttpServer(port, ssl_main, cert_path, cert_pass); | 106 | |
107 | httpServer = new BaseHttpServer(port, ssl_main, cert_path, cert_pass); | ||
139 | } | 108 | } |
140 | 109 | ||
141 | MainServer.Instance = m_HttpServer; | 110 | MainServer.AddHttpServer(httpServer); |
111 | MainServer.Instance = httpServer; | ||
142 | 112 | ||
143 | // If https_listener = true, then add an ssl listener on the https_port... | 113 | // If https_listener = true, then add an ssl listener on the https_port... |
144 | if ( ssl_listener == true ) { | 114 | if ( ssl_listener == true ) { |
@@ -157,43 +127,24 @@ namespace OpenSim.Server.Base | |||
157 | System.Console.WriteLine("Password for X509 certificate is missing, server can't start."); | 127 | System.Console.WriteLine("Password for X509 certificate is missing, server can't start."); |
158 | Thread.CurrentThread.Abort(); | 128 | Thread.CurrentThread.Abort(); |
159 | } | 129 | } |
160 | // Add our https_server | 130 | |
161 | BaseHttpServer server = null; | 131 | MainServer.AddHttpServer(new BaseHttpServer(https_port, ssl_listener, cert_path, cert_pass)); |
162 | server = new BaseHttpServer(https_port, ssl_listener, cert_path, cert_pass); | ||
163 | if (server != null) | ||
164 | { | ||
165 | m_Log.InfoFormat("[SERVER]: Starting HTTPS server on port {0}", https_port); | ||
166 | m_Servers.Add(https_port,server); | ||
167 | } | ||
168 | else | ||
169 | System.Console.WriteLine(String.Format("Failed to start HTTPS server on port {0}",https_port)); | ||
170 | } | 132 | } |
171 | } | 133 | } |
172 | 134 | ||
173 | protected override void Initialise() | 135 | protected override void Initialise() |
174 | { | 136 | { |
175 | m_Log.InfoFormat("[SERVER]: Starting HTTP server on port {0}", m_HttpServer.Port); | 137 | foreach (BaseHttpServer s in MainServer.Servers.Values) |
176 | m_HttpServer.Start(); | 138 | s.Start(); |
177 | 139 | ||
178 | if (m_Servers.Count > 0) | 140 | MainServer.RegisterHttpConsoleCommands(MainConsole.Instance); |
179 | { | ||
180 | foreach (BaseHttpServer s in m_Servers.Values) | ||
181 | { | ||
182 | if (!s.UseSSL) | ||
183 | m_Log.InfoFormat("[SERVER]: Starting HTTP server on port {0}", s.Port); | ||
184 | else | ||
185 | m_Log.InfoFormat("[SERVER]: Starting HTTPS server on port {0}", s.Port); | ||
186 | |||
187 | s.Start(); | ||
188 | } | ||
189 | } | ||
190 | 141 | ||
191 | if (MainConsole.Instance is RemoteConsole) | 142 | if (MainConsole.Instance is RemoteConsole) |
192 | { | 143 | { |
193 | if (m_consolePort == 0) | 144 | if (m_consolePort == 0) |
194 | ((RemoteConsole)MainConsole.Instance).SetServer(m_HttpServer); | 145 | ((RemoteConsole)MainConsole.Instance).SetServer(MainServer.Instance); |
195 | else | 146 | else |
196 | ((RemoteConsole)MainConsole.Instance).SetServer(GetHttpServer(m_consolePort)); | 147 | ((RemoteConsole)MainConsole.Instance).SetServer(MainServer.GetHttpServer(m_consolePort)); |
197 | } | 148 | } |
198 | } | 149 | } |
199 | } | 150 | } |
diff --git a/OpenSim/Server/ServerMain.cs b/OpenSim/Server/ServerMain.cs index 9503c4c..21fb678 100644 --- a/OpenSim/Server/ServerMain.cs +++ b/OpenSim/Server/ServerMain.cs | |||
@@ -30,6 +30,7 @@ using log4net; | |||
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System; | 31 | using System; |
32 | using System.Collections.Generic; | 32 | using System.Collections.Generic; |
33 | using OpenSim.Framework.Servers; | ||
33 | using OpenSim.Framework.Servers.HttpServer; | 34 | using OpenSim.Framework.Servers.HttpServer; |
34 | using OpenSim.Server.Base; | 35 | using OpenSim.Server.Base; |
35 | using OpenSim.Server.Handlers.Base; | 36 | using OpenSim.Server.Handlers.Base; |
@@ -92,27 +93,24 @@ namespace OpenSim.Server | |||
92 | if (parts.Length > 1) | 93 | if (parts.Length > 1) |
93 | friendlyName = parts[1]; | 94 | friendlyName = parts[1]; |
94 | 95 | ||
95 | IHttpServer server = m_Server.HttpServer; | 96 | IHttpServer server; |
96 | if (port != 0) | ||
97 | server = m_Server.GetHttpServer(port); | ||
98 | 97 | ||
99 | if (port != m_Server.DefaultPort && port != 0) | 98 | if (port != 0) |
100 | m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, port); | 99 | server = MainServer.GetHttpServer(port); |
101 | else | 100 | else |
102 | m_log.InfoFormat("[SERVER]: Loading {0}", friendlyName); | 101 | server = MainServer.Instance; |
102 | |||
103 | m_log.InfoFormat("[SERVER]: Loading {0} on port {1}", friendlyName, server.Port); | ||
103 | 104 | ||
104 | IServiceConnector connector = null; | 105 | IServiceConnector connector = null; |
105 | 106 | ||
106 | Object[] modargs = new Object[] { m_Server.Config, server, | 107 | Object[] modargs = new Object[] { m_Server.Config, server, configName }; |
107 | configName }; | 108 | connector = ServerUtils.LoadPlugin<IServiceConnector>(conn, modargs); |
108 | connector = ServerUtils.LoadPlugin<IServiceConnector>(conn, | 109 | |
109 | modargs); | ||
110 | if (connector == null) | 110 | if (connector == null) |
111 | { | 111 | { |
112 | modargs = new Object[] { m_Server.Config, server }; | 112 | modargs = new Object[] { m_Server.Config, server }; |
113 | connector = | 113 | connector = ServerUtils.LoadPlugin<IServiceConnector>(conn, modargs); |
114 | ServerUtils.LoadPlugin<IServiceConnector>(conn, | ||
115 | modargs); | ||
116 | } | 114 | } |
117 | 115 | ||
118 | if (connector != null) | 116 | if (connector != null) |
@@ -132,4 +130,4 @@ namespace OpenSim.Server | |||
132 | return 0; | 130 | return 0; |
133 | } | 131 | } |
134 | } | 132 | } |
135 | } | 133 | } \ No newline at end of file |