diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs | 37 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs | 14 |
2 files changed, 21 insertions, 30 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs index 34d705bfb..e9a94c3ad 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -32,7 +32,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer private string DefaultRedirectPath { get; set; } private readonly ILogger _logger; - public string UrlPrefix { get; private set; } + public IEnumerable<string> UrlPrefixes { get; private set; } private readonly List<IRestfulService> _restServices = new List<IRestfulService>(); @@ -66,7 +66,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer _containerAdapter = new ContainerAdapter(applicationHost); - for (var i = 0; i < 2; i++) + for (var i = 0; i < 1; i++) { _autoResetEvents.Add(new AutoResetEvent(false)); } @@ -145,20 +145,14 @@ namespace MediaBrowser.Server.Implementations.HttpServer public override ServiceStackHost Start(string listeningAtUrlBase) { - StartListener(listeningAtUrlBase); + StartListener(); return this; } /// <summary> /// Starts the Web Service /// </summary> - /// <param name="listeningAtUrlBase"> - /// A Uri that acts as the base that the server is listening on. - /// Format should be: http://127.0.0.1:8080/ or http://127.0.0.1:8080/somevirtual/ - /// Note: the trailing slash is required! For more info see the - /// HttpListener.Prefixes property on MSDN. - /// </param> - protected void StartListener(string listeningAtUrlBase) + private void StartListener() { // *** Already running - just leave it in place if (IsStarted) @@ -167,14 +161,13 @@ namespace MediaBrowser.Server.Implementations.HttpServer if (Listener == null) Listener = new HttpListener(); - HostContext.Config.HandlerFactoryPath = ListenerRequest.GetHandlerPathIfAny(listeningAtUrlBase); + HostContext.Config.HandlerFactoryPath = ListenerRequest.GetHandlerPathIfAny(UrlPrefixes.First()); - UrlPrefix = listeningAtUrlBase; - - Listener.Prefixes.Add(listeningAtUrlBase); - - _logger.Info("Adding HttpListener Prefixes"); - Listener.Prefixes.Add(listeningAtUrlBase); + foreach (var prefix in UrlPrefixes) + { + _logger.Info("Adding HttpListener prefix " + prefix); + Listener.Prefixes.Add(prefix); + } IsStarted = true; _logger.Info("Starting HttpListner"); @@ -419,7 +412,10 @@ namespace MediaBrowser.Server.Implementations.HttpServer { if (Listener != null) { - Listener.Prefixes.Remove(UrlPrefix); + foreach (var prefix in UrlPrefixes) + { + Listener.Prefixes.Remove(prefix); + } Listener.Close(); } @@ -516,9 +512,10 @@ namespace MediaBrowser.Server.Implementations.HttpServer GC.SuppressFinalize(this); } - public void StartServer(string urlPrefix) + public void StartServer(IEnumerable<string> urlPrefixes) { - Start(urlPrefix); + UrlPrefixes = urlPrefixes.ToList(); + Start(UrlPrefixes.First()); } public bool SupportsWebSockets diff --git a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs index a2dfb51d2..671312274 100644 --- a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs +++ b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs @@ -124,9 +124,9 @@ namespace MediaBrowser.Server.Implementations.ServerManager /// <summary> /// Starts this instance. /// </summary> - public void Start(string urlPrefix, bool enableHttpLogging) + public void Start(IEnumerable<string> urlPrefixes, bool enableHttpLogging) { - ReloadHttpServer(urlPrefix, enableHttpLogging); + ReloadHttpServer(urlPrefixes, enableHttpLogging); } public void StartWebSocketServer() @@ -153,14 +153,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager /// <summary> /// Restarts the Http Server, or starts it if not currently running /// </summary> - private void ReloadHttpServer(string urlPrefix, bool enableHttpLogging) + private void ReloadHttpServer(IEnumerable<string> urlPrefixes, bool enableHttpLogging) { - // Only reload if the port has changed, so that we don't disconnect any active users - if (HttpServer != null && HttpServer.UrlPrefix.Equals(urlPrefix, StringComparison.OrdinalIgnoreCase)) - { - return; - } - DisposeHttpServer(); _logger.Info("Loading Http Server"); @@ -169,7 +163,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager { HttpServer = _applicationHost.Resolve<IHttpServer>(); HttpServer.EnableHttpRequestLogging = enableHttpLogging; - HttpServer.StartServer(urlPrefix); + HttpServer.StartServer(urlPrefixes); } catch (SocketException ex) { |
