- Eduard Bloch filed the debian bug report #487567

(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
  libcurl used Content-Range: instead of Range when doing a range request with
  --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
  verify.
This commit is contained in:
Daniel Stenberg 2008-06-22 20:38:16 +00:00
Родитель 90a6a59a2f
Коммит d92945bb8a
5 изменённых файлов: 67 добавлений и 3 удалений

Просмотреть файл

@ -6,6 +6,13 @@
Changelog
Daniel Stenberg (22 Jun 2008)
- Eduard Bloch filed the debian bug report #487567
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
libcurl used Content-Range: instead of Range when doing a range request with
--head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
verify.
Daniel Fandrich (21 Jun 2008)
- Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that
is not ANSI C, just a common extension. This caused problems on

Просмотреть файл

@ -24,6 +24,7 @@ This release includes the following bugfixes:
o curl_multi_socket() socket callback fix for close/re-create sockets case
o SCP or SFTP over socks proxy crashed
o RC4-MD5 cipher now works with NSS-built libcurl
o range requests with --head are now done correctly
This release includes the following known bugs:
@ -42,6 +43,6 @@ advice from friends like these:
Lenny Rachitsky, Axel Tillequin, Arnaud Ebalard, Yang Tse, Dan Fandrich,
Rob Crittenden, Dengminwen, Christopher Palow, Hans-Jurgen May,
Phil Pellouchoud
Phil Pellouchoud, Eduard Bloch
Thanks! (and sorry if I forgot to mention someone)

Просмотреть файл

@ -2298,7 +2298,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
* or uploading and we always let customized headers override our internal
* ones if any such are specified.
*/
if((httpreq == HTTPREQ_GET) &&
if(((httpreq == HTTPREQ_GET) || (httpreq == HTTPREQ_HEAD)) &&
!checkheaders(data, "Range:")) {
/* if a line like this was already allocated, free the previous one */
if(conn->allocptr.rangeline)

Просмотреть файл

@ -51,7 +51,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test1021 test1022 test1023 test309 test616 test617 test618 test619 \
test620 test621 test622 test623 test624 test625 test626 test627 test554 \
test1024 test1025 test555 test1026 test1027 test1028 test1029 test1030 \
test556 test1031 test628 test629 test630 test631 test632
test556 test1031 test628 test629 test630 test631 test632 test1032
filecheck:
@mkdir test-place; \

56
tests/data/test1032 Normal file
Просмотреть файл

@ -0,0 +1,56 @@
<testcase>
<info>
<keywords>
HTTP
HTTP HEAD
range
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP HEAD with --range
</name>
<command>
--range 1-3 --head http://%HOSTIP:%HTTPPORT/1032
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
HEAD /1032 HTTP/1.1
Range: bytes=1-3
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
</verify>
</testcase>