@ -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 > UrlPrefix es { 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 > urlPrefix es )
{
Start ( urlPrefix ) ;
UrlPrefixes = urlPrefixes . ToList ( ) ;
Start ( UrlPrefixes . First ( ) ) ;
}
public bool SupportsWebSockets