diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs | 37 |
1 files changed, 17 insertions, 20 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 |
