diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-06-25 12:56:06 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-06-25 12:56:06 +0000 |
commit | 6f2fca53add357b98dc07ef846a65fd927e7d3dc (patch) | |
tree | db70d3bc8a097c6dfa307bcd44ffd08a349dde6a | |
parent | cd4aed6690aac1d001865bf144c85cd3eb423b51 (diff) | |
download | curl-6f2fca53add357b98dc07ef846a65fd927e7d3dc.tar.gz |
'resume from'-fix. When using "-C -" and doing multiple file download, the
first resume was used on all files instead of being reset between each file.
As found by Björn Stenberg.
-rw-r--r-- | src/main.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c index 4466751a2..125222db5 100644 --- a/src/main.c +++ b/src/main.c @@ -309,6 +309,7 @@ struct Configurable { char *useragent; char *cookie; bool use_resume; + bool resume_from_current; int resume_from; char *postfields; long postfieldsize; @@ -757,8 +758,14 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ break; case 'C': /* This makes us continue an ftp transfer at given position */ - if(!strequal(nextarg, "-")) + if(!strequal(nextarg, "-")) { config->resume_from= atoi(nextarg); + config->resume_from_current = FALSE; + } + else { + config->resume_from_current = TRUE; + config->resume_from = 0; + } config->use_resume=TRUE; break; case 'd': @@ -1639,7 +1646,7 @@ operate(struct Configurable *config, int argc, char *argv[]) free(storefile); } - if((0 == config->resume_from) && config->use_resume) { + if(config->resume_from_current) { /* we're told to continue where we are now, then we get the size of the file as it is now and open it for append instead */ @@ -1707,8 +1714,7 @@ operate(struct Configurable *config, int argc, char *argv[]) } if((config->conf&CONF_UPLOAD) && - config->use_resume && - (0==config->resume_from)) { + config->resume_from_current) { config->resume_from = -1; /* -1 will then force get-it-yourself */ } if(config->headerfile) { |