aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/curl/curl.h3
-rw-r--r--lib/ftp.c7
2 files changed, 8 insertions, 2 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 5dbd7b447..95c6f9970 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -146,7 +146,8 @@ typedef enum {
CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */
CURLE_UNKNOWN_TELNET_OPTION, /* 48 - User specified an unknown option */
CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */
-
+ CURLE_ALREADY_COMPLETE, /* 50 - file to dowload is already complete */
+
CURL_LAST /* never use! */
} CURLcode;
diff --git a/lib/ftp.c b/lib/ftp.c
index 701b497e6..8fda9f477 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1504,7 +1504,7 @@ again:;
data->resume_from = foundsize - downloadsize;
}
else {
- if(foundsize <= data->resume_from) {
+ if(foundsize < data->resume_from) {
failf(data, "Offset (%d) was beyond file size (%d)",
data->resume_from, foundsize);
return CURLE_FTP_BAD_DOWNLOAD_RESUME;
@@ -1514,6 +1514,11 @@ again:;
}
}
+ if (downloadsize == 0) {
+ failf(data, "File already complete");
+ return CURLE_ALREADY_COMPLETE;
+ }
+
/* Set resume file transfer offset */
infof(data, "Instructs server to resume from offset %d\n",
data->resume_from);