Throw exception if ports are the same at startup

This commit is contained in:
Mark McDowall 2019-04-27 23:52:45 -07:00
parent 5293349785
commit 7c7a6a4514
2 changed files with 15 additions and 8 deletions

View File

@ -1,7 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Common.Exceptions namespace NzbDrone.Common.Exceptions
{ {

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using NLog; using NLog;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Exceptions;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration;
@ -54,18 +55,27 @@ namespace NzbDrone.Host.AccessControl
public void ConfigureUrls() public void ConfigureUrls()
{ {
var enableSsl = _configFileProvider.EnableSsl;
var port = _configFileProvider.Port;
var sslPort = _configFileProvider.SslPort;
if (enableSsl && sslPort == port)
{
throw new SonarrStartupException("Cannot use the same port for HTTP and HTTPS. Port {0}", port);
}
if (RegisteredUrls.Empty()) if (RegisteredUrls.Empty())
{ {
GetRegisteredUrls(); GetRegisteredUrls();
} }
var localHostHttpUrls = BuildUrlAcls("http", "localhost", _configFileProvider.Port); var localHostHttpUrls = BuildUrlAcls("http", "localhost", port);
var interfaceHttpUrls = BuildUrlAcls("http", _configFileProvider.BindAddress, _configFileProvider.Port); var interfaceHttpUrls = BuildUrlAcls("http", _configFileProvider.BindAddress, port);
var localHostHttpsUrls = BuildUrlAcls("https", "localhost", _configFileProvider.SslPort); var localHostHttpsUrls = BuildUrlAcls("https", "localhost", sslPort);
var interfaceHttpsUrls = BuildUrlAcls("https", _configFileProvider.BindAddress, _configFileProvider.SslPort); var interfaceHttpsUrls = BuildUrlAcls("https", _configFileProvider.BindAddress, sslPort);
if (!_configFileProvider.EnableSsl) if (!enableSsl)
{ {
localHostHttpsUrls.Clear(); localHostHttpsUrls.Clear();
interfaceHttpsUrls.Clear(); interfaceHttpsUrls.Clear();