summaryrefslogtreecommitdiff
path: root/src/net/download.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/download.cpp')
-rw-r--r--src/net/download.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/net/download.cpp b/src/net/download.cpp
index 061cecfd..8a5e0828 100644
--- a/src/net/download.cpp
+++ b/src/net/download.cpp
@@ -215,6 +215,9 @@ int Download::downloadThread(void *ptr)
{
switch (res)
{
+ case CURLE_ABORTED_BY_CALLBACK:
+ d->mOptions.cancel = true;
+ break;
case CURLE_COULDNT_CONNECT:
default:
logger->log("curl error %d: %s host: %s",
@@ -222,6 +225,11 @@ int Download::downloadThread(void *ptr)
break;
}
+ if (d->mOptions.cancel)
+ {
+ break;
+ }
+
d->mUpdateFunction(d->mPtr, DOWNLOAD_STATUS_ERROR, 0, 0);
if (!d->mOptions.memoryWrite)
@@ -280,7 +288,11 @@ int Download::downloadThread(void *ptr)
attempts++;
}
- if (!complete) {
+ if (d->mOptions.cancel)
+ {
+ // Nothing to do...
+ }
+ else if (!complete || attempts >= 3) {
d->mUpdateFunction(d->mPtr, DOWNLOAD_STATUS_ERROR, 0, 0);
}
else
@@ -291,5 +303,4 @@ int Download::downloadThread(void *ptr)
return 0;
}
-
} // namespace Net