Toon Verwaest reported that there are servers that send the Content-Range:
header in a third, not suppported by libcurl, format and we agreed that we could make the parser more forgiving to accept all the three found variations.
This commit is contained in:
Родитель
7ae5ebbeb2
Коммит
d8c61d459e
6
CHANGES
6
CHANGES
|
@ -6,6 +6,12 @@
|
||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
Daniel (1 December 2006)
|
||||||
|
- Toon Verwaest reported that there are servers that send the Content-Range:
|
||||||
|
header in a third, not suppported by libcurl, format and we agreed that we
|
||||||
|
could make the parser more forgiving to accept all the three found
|
||||||
|
variations.
|
||||||
|
|
||||||
Daniel (25 November 2006)
|
Daniel (25 November 2006)
|
||||||
- Venkat Akella found out that libcurl did not like HTTP responses that simply
|
- Venkat Akella found out that libcurl did not like HTTP responses that simply
|
||||||
responded with a single status line and no headers nor body. Starting now, a
|
responded with a single status line and no headers nor body. Starting now, a
|
||||||
|
|
|
@ -25,6 +25,7 @@ This release includes the following bugfixes:
|
||||||
o stack overwrite on 64bit Windows in the chunked decoding department
|
o stack overwrite on 64bit Windows in the chunked decoding department
|
||||||
o HTTP responses on persistent connections without Content-Length nor chunked
|
o HTTP responses on persistent connections without Content-Length nor chunked
|
||||||
encoding are now considered to be without response body
|
encoding are now considered to be without response body
|
||||||
|
o Content-Range: header parsing improved
|
||||||
|
|
||||||
Other curl-related news:
|
Other curl-related news:
|
||||||
|
|
||||||
|
@ -40,6 +41,6 @@ This release would not have looked like this without help, code, reports and
|
||||||
advice from friends like these:
|
advice from friends like these:
|
||||||
|
|
||||||
James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce,
|
James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce,
|
||||||
Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer, Venkat Akella
|
Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer, Venkat Akella, Toon Verwaest
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
|
|
@ -904,19 +904,20 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||||
|| checkprefix("x-compress", start))
|
|| checkprefix("x-compress", start))
|
||||||
k->content_encoding = COMPRESS;
|
k->content_encoding = COMPRESS;
|
||||||
}
|
}
|
||||||
else if (Curl_compareheader(k->p, "Content-Range:", "bytes")) {
|
else if (checkprefix("Content-Range:", k->p)) {
|
||||||
/* Content-Range: bytes [num]-
|
/* Content-Range: bytes [num]-
|
||||||
Content-Range: bytes: [num]-
|
Content-Range: bytes: [num]-
|
||||||
|
Content-Range: [num]-
|
||||||
|
|
||||||
The second format was added since Sun's webserver
|
The second format was added since Sun's webserver
|
||||||
JavaWebServer/1.1.1 obviously sends the header this way!
|
JavaWebServer/1.1.1 obviously sends the header this way!
|
||||||
|
The third added since some servers use that!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *ptr = Curl_strcasestr(k->p, "bytes");
|
char *ptr = k->p + 14;
|
||||||
ptr+=5;
|
|
||||||
|
|
||||||
if(*ptr == ':')
|
/* Move forward until first digit */
|
||||||
/* stupid colon skip */
|
while(*ptr && !ISDIGIT(*ptr))
|
||||||
ptr++;
|
ptr++;
|
||||||
|
|
||||||
k->offset = curlx_strtoofft(ptr, NULL, 10);
|
k->offset = curlx_strtoofft(ptr, NULL, 10);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче