51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
|
using NLog;
|
|
using NzbDrone.Host.AccessControl;
|
|
|
|
namespace NzbDrone.Host.Owin
|
|
{
|
|
public class OwinHostController : IHostController
|
|
{
|
|
private readonly IOwinAppFactory _owinAppFactory;
|
|
private readonly IRemoteAccessAdapter _remoteAccessAdapter;
|
|
private readonly IUrlAclAdapter _urlAclAdapter;
|
|
private readonly Logger _logger;
|
|
private IDisposable _owinApp;
|
|
|
|
public OwinHostController(
|
|
IOwinAppFactory owinAppFactory,
|
|
IRemoteAccessAdapter remoteAccessAdapter,
|
|
IUrlAclAdapter urlAclAdapter,
|
|
Logger logger)
|
|
{
|
|
_owinAppFactory = owinAppFactory;
|
|
_remoteAccessAdapter = remoteAccessAdapter;
|
|
_urlAclAdapter = urlAclAdapter;
|
|
_logger = logger;
|
|
}
|
|
|
|
public void StartServer()
|
|
{
|
|
_remoteAccessAdapter.MakeAccessible(true);
|
|
|
|
_logger.Info("Listening on the following URLs:");
|
|
foreach (var url in _urlAclAdapter.Urls)
|
|
{
|
|
_logger.Info(" {0}", url);
|
|
}
|
|
|
|
_owinApp = _owinAppFactory.CreateApp(_urlAclAdapter.Urls);
|
|
}
|
|
|
|
public void StopServer()
|
|
{
|
|
if (_owinApp == null) return;
|
|
|
|
_logger.Info("Attempting to stop OWIN host");
|
|
_owinApp.Dispose();
|
|
_owinApp = null;
|
|
_logger.Info("Host has stopped");
|
|
}
|
|
}
|
|
}
|