mirror of
https://github.com/curl/curl.git
synced 2026-07-28 14:33:07 +03:00
Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described
in the man page, curl would send an invalid HTTP Range: header. The correct way would be to use "-r [number]-" or even "-r -[number]". Starting now, curl will warn if this is discovered, and automatically append a dash to the range before passing it to libcurl.
This commit is contained in:
parent
33dc28b905
commit
9d152a77fd
4 changed files with 29 additions and 4 deletions
20
src/main.c
20
src/main.c
|
|
@ -2097,8 +2097,24 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
return err;
|
||||
break;
|
||||
case 'r':
|
||||
/* byte range requested */
|
||||
GetStr(&config->range, nextarg);
|
||||
/* Specifying a range WITHOUT A DASH will create an illegal HTTP range
|
||||
(and won't actually be range by definition). The man page previously
|
||||
claimed that to be a good way, why this code is added to work-around
|
||||
it. */
|
||||
if(!strchr(nextarg, '-')) {
|
||||
char buffer[32];
|
||||
curl_off_t off;
|
||||
warnf(config,
|
||||
"A specfied range MUST include at least one dash (-). "
|
||||
"Appending one for you!\n");
|
||||
off = curlx_strtoofft(nextarg, NULL, 10);
|
||||
snprintf(buffer, sizeof(buffer), CURL_FORMAT_OFF_T "-", off);
|
||||
GetStr(&config->range, buffer);
|
||||
}
|
||||
else
|
||||
/* byte range requested */
|
||||
GetStr(&config->range, nextarg);
|
||||
|
||||
break;
|
||||
case 'R':
|
||||
/* use remote file's time */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue