Fixed: DownloadStation interface stuck in infinite loop in some cases.

* removed empty spaces. changed dcaex => ex

* Changed error message

* changed error message

* Wrong message, ups

* Another message
pull/1726/head
Marcelo Castagna 8 years ago committed by Taloth
parent afe05189da
commit 9a870a3709

@ -49,7 +49,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation.Proxies
{ {
if (retries == 5) if (retries == 5)
{ {
throw new DownloadClientException("Try to process same request more than 5 times"); throw new DownloadClientException("Try to process request to {0} with {1} more than 5 times", api, arguments.ToJson().ToString());
} }
if (!_authenticated && api != DiskStationApi.Info && api != DiskStationApi.DSMInfo) if (!_authenticated && api != DiskStationApi.Info && api != DiskStationApi.DSMInfo)
@ -72,14 +72,20 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation.Proxies
} }
else else
{ {
var msg = $"Failed to {operation}. Reason: {responseContent.Error.GetMessage(api)}";
_logger.Error(msg);
if (responseContent.Error.SessionError) if (responseContent.Error.SessionError)
{ {
_authenticated = false; _authenticated = false;
return ProcessRequest<T>(api, arguments, settings, operation, method, retries++);
if (responseContent.Error.Code == 105)
{
throw new DownloadClientAuthenticationException(msg);
} }
var msg = $"Failed to {operation}. Reason: {responseContent.Error.GetMessage(api)}"; return ProcessRequest<T>(api, arguments, settings, operation, method, ++retries);
_logger.Error(msg); }
throw new DownloadClientException(msg); throw new DownloadClientException(msg);
} }

@ -272,7 +272,17 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
try try
{ {
var downloadDir = GetDownloadDirectory(); var downloadDir = GetDefaultDir();
if (downloadDir == null)
{
return new NzbDroneValidationFailure(nameof(Settings.TvDirectory), "No default destination")
{
DetailedDescription = $"You must login into your Diskstation as {Settings.Username} and manually set it up into DownloadStation settings under BT/HTTP/FTP/NZB -> Location."
};
}
downloadDir = GetDownloadDirectory();
if (downloadDir != null) if (downloadDir != null)
{ {
@ -285,7 +295,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist") return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist")
{ {
DetailedDescription = $"The DownloadStation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?" DetailedDescription = $"The Diskstation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?"
}; };
} }
@ -300,6 +310,11 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
return null; return null;
} }
catch (DownloadClientAuthenticationException ex) // User could not have permission to access to downloadstation
{
_logger.Error(ex);
return new NzbDroneValidationFailure(string.Empty, ex.Message);
}
catch (Exception ex) catch (Exception ex)
{ {
_logger.Error(ex); _logger.Error(ex);

@ -190,7 +190,17 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
try try
{ {
var downloadDir = GetDownloadDirectory(); var downloadDir = GetDefaultDir();
if (downloadDir == null)
{
return new NzbDroneValidationFailure(nameof(Settings.TvDirectory), "No default destination")
{
DetailedDescription = $"You must login into your Diskstation as {Settings.Username} and manually set it up into DownloadStation settings under BT/HTTP/FTP/NZB -> Location."
};
}
downloadDir = GetDownloadDirectory();
if (downloadDir != null) if (downloadDir != null)
{ {
@ -203,7 +213,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
{ {
return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist") return new NzbDroneValidationFailure(fieldName, $"Shared folder does not exist")
{ {
DetailedDescription = $"The DownloadStation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?" DetailedDescription = $"The Diskstation does not have a Shared Folder with the name '{sharedFolder}', are you sure you specified it correctly?"
}; };
} }
@ -218,6 +228,11 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
return null; return null;
} }
catch (DownloadClientAuthenticationException ex) // User could not have permission to access to downloadstation
{
_logger.Error(ex);
return new NzbDroneValidationFailure(string.Empty, ex.Message);
}
catch (Exception ex) catch (Exception ex)
{ {
_logger.Error(ex); _logger.Error(ex);

Loading…
Cancel
Save