public void ConfigureUrls() { if (RegisteredUrls.Empty()) { GetRegisteredUrls(); } var localHostHttpUrls = BuildUrlAcls("http", "localhost", _configFileProvider.Port); var interfaceHttpUrls = BuildUrlAcls("http", _configFileProvider.BindAddress, _configFileProvider.Port); var localHostHttpsUrls = BuildUrlAcls("https", "localhost", _configFileProvider.SslPort); var interfaceHttpsUrls = BuildUrlAcls("https", _configFileProvider.BindAddress, _configFileProvider.SslPort); if (!_configFileProvider.EnableSsl) { localHostHttpsUrls.Clear(); interfaceHttpsUrls.Clear(); } if (OsInfo.IsWindows && !_runtimeInfo.IsAdmin) { var httpUrls = interfaceHttpUrls.All(IsRegistered) ? interfaceHttpUrls : localHostHttpUrls; var httpsUrls = interfaceHttpsUrls.All(IsRegistered) ? interfaceHttpsUrls : localHostHttpsUrls; InternalUrls.AddRange(httpUrls); InternalUrls.AddRange(httpsUrls); if (_configFileProvider.BindAddress != "*") { if (httpUrls.None(c => c.Address.Equals("localhost"))) { InternalUrls.AddRange(localHostHttpUrls); } if (httpsUrls.None(c => c.Address.Equals("localhost"))) { InternalUrls.AddRange(localHostHttpsUrls); } } } else { InternalUrls.AddRange(interfaceHttpUrls); InternalUrls.AddRange(interfaceHttpsUrls); //Register localhost URLs so the IP Address doesn't need to be used from the local system if (_configFileProvider.BindAddress != "*") { InternalUrls.AddRange(localHostHttpUrls); InternalUrls.AddRange(localHostHttpsUrls); } if (OsInfo.IsWindows) { RefreshRegistration(); } } }
public void ConfigureUrls() { var enableSsl = _configFileProvider.EnableSsl; var port = _configFileProvider.Port; var sslPort = _configFileProvider.SslPort; if (enableSsl && sslPort == port) { throw new LidarrStartupException("Cannot use the same port for HTTP and HTTPS. Port {0}", port); } if (RegisteredUrls.Empty()) { GetRegisteredUrls(); } var localHostHttpUrls = BuildUrlAcls("http", "localhost", port); var interfaceHttpUrls = BuildUrlAcls("http", _configFileProvider.BindAddress, port); var localHostHttpsUrls = BuildUrlAcls("https", "localhost", sslPort); var interfaceHttpsUrls = BuildUrlAcls("https", _configFileProvider.BindAddress, sslPort); if (!enableSsl) { localHostHttpsUrls.Clear(); interfaceHttpsUrls.Clear(); } if (OsInfo.IsWindows && !_runtimeInfo.IsAdmin) { var httpUrls = interfaceHttpUrls.All(IsRegistered) ? interfaceHttpUrls : localHostHttpUrls; var httpsUrls = interfaceHttpsUrls.All(IsRegistered) ? interfaceHttpsUrls : localHostHttpsUrls; InternalUrls.AddRange(httpUrls); InternalUrls.AddRange(httpsUrls); if (_configFileProvider.BindAddress != "*") { if (httpUrls.None(c => c.Address.Equals("localhost"))) { InternalUrls.AddRange(localHostHttpUrls); } if (httpsUrls.None(c => c.Address.Equals("localhost"))) { InternalUrls.AddRange(localHostHttpsUrls); } } } else { InternalUrls.AddRange(interfaceHttpUrls); InternalUrls.AddRange(interfaceHttpsUrls); //Register localhost URLs so the IP Address doesn't need to be used from the local system if (_configFileProvider.BindAddress != "*") { InternalUrls.AddRange(localHostHttpUrls); InternalUrls.AddRange(localHostHttpsUrls); } if (OsInfo.IsWindows) { RefreshRegistration(); } } }