2013-11-13 22:45:41 +00:00
|
|
|
using System;
|
2013-02-19 01:13:42 +00:00
|
|
|
using NLog;
|
2013-08-30 22:55:01 +00:00
|
|
|
using NzbDrone.Common.EnvironmentInfo;
|
2017-01-05 19:42:02 +00:00
|
|
|
using Radarr.Host.AccessControl;
|
2013-02-19 01:13:42 +00:00
|
|
|
|
2017-01-05 19:42:02 +00:00
|
|
|
namespace Radarr.Host.Owin
|
2013-02-19 01:13:42 +00:00
|
|
|
{
|
2013-05-04 20:29:24 +00:00
|
|
|
public class OwinHostController : IHostController
|
2013-02-19 01:13:42 +00:00
|
|
|
{
|
2014-08-24 18:24:43 +00:00
|
|
|
private readonly IOwinAppFactory _owinAppFactory;
|
2019-09-03 02:22:25 +00:00
|
|
|
private readonly IRemoteAccessAdapter _removeAccessAdapter;
|
2013-08-30 22:55:01 +00:00
|
|
|
private readonly IUrlAclAdapter _urlAclAdapter;
|
2013-02-19 01:13:42 +00:00
|
|
|
private readonly Logger _logger;
|
2014-08-24 18:24:43 +00:00
|
|
|
private IDisposable _owinApp;
|
2013-02-19 01:13:42 +00:00
|
|
|
|
2014-08-24 18:24:43 +00:00
|
|
|
public OwinHostController(
|
|
|
|
IOwinAppFactory owinAppFactory,
|
2019-09-03 02:22:25 +00:00
|
|
|
IRemoteAccessAdapter removeAccessAdapter,
|
2013-09-22 19:57:03 +00:00
|
|
|
IUrlAclAdapter urlAclAdapter,
|
|
|
|
Logger logger)
|
2013-02-19 01:13:42 +00:00
|
|
|
{
|
2014-08-24 18:24:43 +00:00
|
|
|
_owinAppFactory = owinAppFactory;
|
2019-09-03 02:22:25 +00:00
|
|
|
_removeAccessAdapter = removeAccessAdapter;
|
2013-08-30 22:55:01 +00:00
|
|
|
_urlAclAdapter = urlAclAdapter;
|
2013-02-19 01:13:42 +00:00
|
|
|
_logger = logger;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void StartServer()
|
|
|
|
{
|
2019-09-03 02:22:25 +00:00
|
|
|
_removeAccessAdapter.MakeAccessible(true);
|
2014-01-03 03:25:30 +00:00
|
|
|
|
2014-01-02 06:56:19 +00:00
|
|
|
_logger.Info("Listening on the following URLs:");
|
2014-08-24 18:24:43 +00:00
|
|
|
foreach (var url in _urlAclAdapter.Urls)
|
2013-09-22 19:57:03 +00:00
|
|
|
{
|
2014-01-02 06:56:19 +00:00
|
|
|
_logger.Info(" {0}", url);
|
2013-09-22 19:57:03 +00:00
|
|
|
}
|
2013-09-11 15:35:58 +00:00
|
|
|
|
2014-08-24 18:24:43 +00:00
|
|
|
_owinApp = _owinAppFactory.CreateApp(_urlAclAdapter.Urls);
|
2013-05-04 21:09:25 +00:00
|
|
|
}
|
|
|
|
|
2013-02-19 01:13:42 +00:00
|
|
|
public void StopServer()
|
|
|
|
{
|
2014-08-24 18:24:43 +00:00
|
|
|
if (_owinApp == null) return;
|
2013-02-19 01:13:42 +00:00
|
|
|
|
2014-08-24 18:24:43 +00:00
|
|
|
_logger.Info("Attempting to stop OWIN host");
|
|
|
|
_owinApp.Dispose();
|
|
|
|
_owinApp = null;
|
2013-02-19 01:13:42 +00:00
|
|
|
_logger.Info("Host has stopped");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|