From b7731faedc5eb16de6cda9176779abde216766c9 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 15 Aug 2021 19:48:14 -0400 Subject: [PATCH] Fixed: (Indexer Proxy) Socks4 and Socks5 not using Credentials --- .../HealthCheck/Checks/IndexerProxyCheck.cs | 6 +++++- .../IndexerProxies/HttpIndexerProxyBase.cs | 6 +++--- src/NzbDrone.Core/IndexerProxies/IndexerProxyBase.cs | 12 ------------ src/NzbDrone.Core/IndexerProxies/Socks4/Socks4.cs | 4 ++-- src/NzbDrone.Core/IndexerProxies/Socks5/Socks5.cs | 4 ++-- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerProxyCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerProxyCheck.cs index 1a48fc6ca..3e4a8d7c7 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerProxyCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerProxyCheck.cs @@ -7,9 +7,13 @@ using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerProxies; using NzbDrone.Core.Localization; +using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks { + [CheckOn(typeof(ProviderDeletedEvent))] + [CheckOn(typeof(ProviderAddedEvent))] + [CheckOn(typeof(ProviderUpdatedEvent))] public class IndexerProxyCheck : HealthCheckBase { private readonly Logger _logger; @@ -37,7 +41,7 @@ namespace NzbDrone.Core.HealthCheck.Checks var badProxies = enabledProviders.Where(p => !IsProxyWorking(p)).ToList(); - if (enabledProviders.Empty()) + if (enabledProviders.Empty() || badProxies.Count == 0) { return new HealthCheck(GetType()); } diff --git a/src/NzbDrone.Core/IndexerProxies/HttpIndexerProxyBase.cs b/src/NzbDrone.Core/IndexerProxies/HttpIndexerProxyBase.cs index 5868ef412..f37389b4d 100644 --- a/src/NzbDrone.Core/IndexerProxies/HttpIndexerProxyBase.cs +++ b/src/NzbDrone.Core/IndexerProxies/HttpIndexerProxyBase.cs @@ -40,19 +40,19 @@ namespace NzbDrone.Core.IndexerProxies try { - var response = _httpClient.Execute(request); + var response = PostResponse(_httpClient.Execute(request)); // We only care about 400 responses, other error codes can be ignored if (response.StatusCode == HttpStatusCode.BadRequest) { _logger.Error("Proxy Health Check failed: {0}", response.StatusCode); - failures.Add(new NzbDroneValidationFailure("Host", "ProxyCheckBadRequestMessage")); + failures.Add(new NzbDroneValidationFailure("Host", string.Format("Failed to test proxy. StatusCode: {0}", response.StatusCode))); } } catch (Exception ex) { _logger.Error(ex, "Proxy Health Check failed"); - failures.Add(new NzbDroneValidationFailure("Host", "ProxyCheckFailedToTestMessage")); + failures.Add(new NzbDroneValidationFailure("Host", string.Format("Failed to test proxy: {0}", request.Url))); } return new ValidationResult(failures); diff --git a/src/NzbDrone.Core/IndexerProxies/IndexerProxyBase.cs b/src/NzbDrone.Core/IndexerProxies/IndexerProxyBase.cs index b4c82808d..1efe8437c 100644 --- a/src/NzbDrone.Core/IndexerProxies/IndexerProxyBase.cs +++ b/src/NzbDrone.Core/IndexerProxies/IndexerProxyBase.cs @@ -36,17 +36,5 @@ namespace NzbDrone.Core.IndexerProxies { return null; } - - private bool HasConcreteImplementation(string methodName) - { - var method = GetType().GetMethod(methodName); - - if (method == null) - { - throw new MissingMethodException(GetType().Name, Name); - } - - return !method.DeclaringType.IsAbstract; - } } } diff --git a/src/NzbDrone.Core/IndexerProxies/Socks4/Socks4.cs b/src/NzbDrone.Core/IndexerProxies/Socks4/Socks4.cs index fa32e1673..22ca0ce2c 100644 --- a/src/NzbDrone.Core/IndexerProxies/Socks4/Socks4.cs +++ b/src/NzbDrone.Core/IndexerProxies/Socks4/Socks4.cs @@ -23,11 +23,11 @@ namespace NzbDrone.Core.IndexerProxies.Socks4 { if (Settings.Username.IsNotNullOrWhiteSpace() && Settings.Password.IsNotNullOrWhiteSpace()) { - request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Four), false); + request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Four, Settings.Username, Settings.Password), false); } else { - request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Four, Settings.Username, Settings.Password), false); + request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Four), false); } _logger.Debug("Applying Socks4 Proxy {0} to request {1}", Name, request.Url); diff --git a/src/NzbDrone.Core/IndexerProxies/Socks5/Socks5.cs b/src/NzbDrone.Core/IndexerProxies/Socks5/Socks5.cs index 5c3727972..3ad62e24a 100644 --- a/src/NzbDrone.Core/IndexerProxies/Socks5/Socks5.cs +++ b/src/NzbDrone.Core/IndexerProxies/Socks5/Socks5.cs @@ -24,11 +24,11 @@ namespace NzbDrone.Core.IndexerProxies.Socks5 { if (Settings.Username.IsNotNullOrWhiteSpace() && Settings.Password.IsNotNullOrWhiteSpace()) { - request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Five), false); + request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Five, Settings.Username, Settings.Password), false); } else { - request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Five, Settings.Username, Settings.Password), false); + request.Proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Loopback, GetNextFreePort(), GetProxyIpAddress(Settings.Host), Settings.Port, ProxyConfig.SocksVersion.Five), false); } _logger.Debug("Applying Socks5 Proxy {0} to request {1}", Name, request.Url);