diff options
author | Tony Tam <149837+tonytamsf@users.noreply.github.com> | 2021-01-13 01:56:34 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-13 10:56:34 +0100 |
commit | 7659fd25d8f9a8724c100f8cd2dffe4d1c8588b2 (patch) | |
tree | 437a83788f86ebe9dc53a0080157e380462d4533 /core/src/main/java/de/danoeh | |
parent | 2588b0eca72e811e31dd228d425ab440df50c716 (diff) | |
download | AntennaPod-7659fd25d8f9a8724c100f8cd2dffe4d1c8588b2.zip |
Do not retry autodownload after SSL errors (#4821)
Diffstat (limited to 'core/src/main/java/de/danoeh')
3 files changed, 10 insertions, 18 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index 5a2c653d6..6dbc4a82f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -25,7 +25,6 @@ import org.greenrobot.eventbus.EventBus; import java.io.File; import java.io.IOException; -import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -325,18 +324,11 @@ public class DownloadService extends Service { if (item == null) { return; } - boolean httpNotFound = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR - && String.valueOf(HttpURLConnection.HTTP_NOT_FOUND).equals(status.getReasonDetailed()); - boolean forbidden = status.getReason() == DownloadError.ERROR_FORBIDDEN - && String.valueOf(HttpURLConnection.HTTP_FORBIDDEN).equals(status.getReasonDetailed()); - boolean notEnoughSpace = status.getReason() == DownloadError.ERROR_NOT_ENOUGH_SPACE; - boolean wrongFileType = status.getReason() == DownloadError.ERROR_FILE_TYPE; - boolean httpGone = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR - && String.valueOf(HttpURLConnection.HTTP_GONE).equals(status.getReasonDetailed()); - boolean httpBadReq = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR - && String.valueOf(HttpURLConnection.HTTP_BAD_REQUEST).equals(status.getReasonDetailed()); - - if (httpNotFound || forbidden || notEnoughSpace || wrongFileType || httpGone || httpBadReq ) { + boolean unknownHost = status.getReason() == DownloadError.ERROR_UNKNOWN_HOST; + boolean unsupportedType = status.getReason() == DownloadError.ERROR_UNSUPPORTED_TYPE; + boolean wrongSize = status.getReason() == DownloadError.ERROR_IO_WRONG_SIZE; + + if (! (unknownHost || unsupportedType || wrongSize)) { try { DBWriter.saveFeedItemAutoDownloadFailed(item).get(); } catch (ExecutionException | InterruptedException e) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java index 393592cf9..b553a9d1f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java @@ -223,7 +223,7 @@ public class HttpDownloader extends Downloader { // written file. This check cannot be made if compression was used if (!isGzip && request.getSize() != DownloadStatus.SIZE_UNKNOWN && request.getSoFar() != request.getSize()) { - onFail(DownloadError.ERROR_IO_ERROR, "Download completed but size: " + + onFail(DownloadError.ERROR_IO_WRONG_SIZE, "Download completed but size: " + request.getSoFar() + " does not equal expected size " + request.getSize()); return; } else if (request.getSize() > 0 && request.getSoFar() == 0) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java b/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java index 0c9989b43..babf3a846 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DownloadError.java @@ -19,11 +19,11 @@ public enum DownloadError { ERROR_NOT_ENOUGH_SPACE(10, R.string.download_error_insufficient_space), ERROR_UNKNOWN_HOST(11, R.string.download_error_unknown_host), ERROR_REQUEST_ERROR(12, R.string.download_error_request_error), - ERROR_DB_ACCESS_ERROR(13, R.string.download_error_db_access), - ERROR_UNAUTHORIZED(14, R.string.download_error_unauthorized), + ERROR_DB_ACCESS_ERROR(13, R.string.download_error_db_access), + ERROR_UNAUTHORIZED(14, R.string.download_error_unauthorized), ERROR_FILE_TYPE(15, R.string.download_error_file_type_type), - ERROR_FORBIDDEN(16, R.string.download_error_forbidden); - + ERROR_FORBIDDEN(16, R.string.download_error_forbidden), + ERROR_IO_WRONG_SIZE(17, R.string.download_error_forbidden); private final int code; private final int resId; |