mirror of
https://github.com/Sonarr/Sonarr
synced 2025-12-06 08:28:37 +01:00
Suggest adding IP to RPC whitelist for on failed Transmission auth
This commit is contained in:
parent
8cd5cd603a
commit
f05e552e8e
1 changed files with 19 additions and 16 deletions
|
|
@ -7,6 +7,7 @@
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Cache;
|
using NzbDrone.Common.Cache;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
|
|
@ -261,7 +262,7 @@ private HttpRequestBuilder BuildRequest(TransmissionSettings settings)
|
||||||
|
|
||||||
private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false)
|
private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false)
|
||||||
{
|
{
|
||||||
var authKey = string.Format("{0}:{1}", requestBuilder.BaseUrl, settings.Password);
|
var authKey = $"{requestBuilder.BaseUrl}:{settings.Password}";
|
||||||
|
|
||||||
var sessionId = _authSessionIdCache.Find(authKey);
|
var sessionId = _authSessionIdCache.Find(authKey);
|
||||||
|
|
||||||
|
|
@ -273,24 +274,26 @@ private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionS
|
||||||
authLoginRequest.SuppressHttpError = true;
|
authLoginRequest.SuppressHttpError = true;
|
||||||
|
|
||||||
var response = _httpClient.Execute(authLoginRequest);
|
var response = _httpClient.Execute(authLoginRequest);
|
||||||
if (response.StatusCode == HttpStatusCode.MovedPermanently)
|
|
||||||
{
|
|
||||||
var url = response.Headers.GetSingleValue("Location");
|
|
||||||
|
|
||||||
throw new DownloadClientException("Remote site redirected to " + url);
|
switch (response.StatusCode)
|
||||||
}
|
|
||||||
else if (response.StatusCode == HttpStatusCode.Conflict)
|
|
||||||
{
|
{
|
||||||
sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id");
|
case HttpStatusCode.MovedPermanently:
|
||||||
|
var url = response.Headers.GetSingleValue("Location");
|
||||||
|
|
||||||
if (sessionId == null)
|
throw new DownloadClientException("Remote site redirected to " + url);
|
||||||
{
|
case HttpStatusCode.Forbidden:
|
||||||
throw new DownloadClientException("Remote host did not return a Session Id.");
|
throw new DownloadClientException($"Failed to authenticate with Transmission. It may be necessary to add {BuildInfo.AppName}'s IP address to RPC whitelist.");
|
||||||
}
|
case HttpStatusCode.Conflict:
|
||||||
}
|
sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id");
|
||||||
else
|
|
||||||
{
|
if (sessionId == null)
|
||||||
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission.");
|
{
|
||||||
|
throw new DownloadClientException("Remote host did not return a Session Id.");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission.");
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Debug("Transmission authentication succeeded.");
|
_logger.Debug("Transmission authentication succeeded.");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue