summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2010-10-02 00:22:48 +0200
committerDaniel Stenberg <daniel@haxx.se>2010-10-02 00:22:48 +0200
commit2ae6c47d5dfdff2d6d884284beb6b0322e8ac671 (patch)
tree8a980d62bbbb839e1657ee234533b736969d4082
parent15622e69a995bb4bee04bc647d86d658860914be (diff)
downloadcurl-2ae6c47d5dfdff2d6d884284beb6b0322e8ac671.tar.gz
HTTP: remove special case for 416
It was pointed out that the special case libcurl did for 416 was incorrect and wrong. 416 is not really different to other errors so the response body must be handled like for other errors/http responses. Reported by: Chris Smowton Bug: http://curl.haxx.se/bug/view.cgi?id=3076808
-rw-r--r--lib/http.c15
-rw-r--r--tests/data/test1943
-rw-r--r--tests/data/test923
3 files changed, 5 insertions, 16 deletions
diff --git a/lib/http.c b/lib/http.c
index 3d6f977ea..413ef3d89 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -3293,13 +3293,6 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
data->req.deductheadercount =
(100 <= k->httpcode && 199 >= k->httpcode)?data->req.headerbytecount:0;
- if(data->state.resume_from &&
- (data->set.httpreq==HTTPREQ_GET) &&
- (k->httpcode == 416)) {
- /* "Requested Range Not Satisfiable" */
- *stop_reading = TRUE;
- }
-
if(!*stop_reading) {
/* Curl_http_auth_act() checks what authentication methods
* that are available and decides which one (if any) to
@@ -3512,9 +3505,6 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
* message-body, and thus is always terminated by the first
* empty line after the header fields. */
/* FALLTHROUGH */
- case 416: /* Requested Range Not Satisfiable, it has the
- Content-Length: set as the "real" document but no
- actual response is sent. */
case 304:
/* (quote from RFC2616, section 10.3.5): The 304 response
* MUST NOT contain a message-body, and thus is always
@@ -3546,10 +3536,7 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
/* Curl_convert_from_network calls failf if unsuccessful */
#endif /* CURL_DOES_CONVERSIONS */
- /* Check for Content-Length: header lines to get size. Ignore
- the header completely if we get a 416 response as then we're
- resuming a document that we don't get, and this header contains
- info about the true size of the document we didn't get now. */
+ /* Check for Content-Length: header lines to get size */
if(!k->ignorecl && !data->set.ignorecl &&
checkprefix("Content-Length:", k->p)) {
curl_off_t contentlength = curlx_strtoofft(k->p+15, NULL, 10);
diff --git a/tests/data/test194 b/tests/data/test194
index 3ccc01ae5..582f197f7 100644
--- a/tests/data/test194
+++ b/tests/data/test194
@@ -17,11 +17,12 @@ Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.
Last-Modified: Fri, 24 Oct 2003 18:01:23 GMT
ETag: "ab57a-507-3f9968f3"
Accept-Ranges: bytes
-Content-Length: 87
+Content-Length: 4
Content-Range: bytes */87
Content-Type: image/gif
Connection: close
+bad
</data>
</reply>
diff --git a/tests/data/test92 b/tests/data/test92
index 21635753b..726aa7919 100644
--- a/tests/data/test92
+++ b/tests/data/test92
@@ -17,10 +17,11 @@ Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.
Last-Modified: Fri, 24 Oct 2003 18:01:23 GMT
ETag: "ab57a-507-3f9968f3"
Accept-Ranges: bytes
-Content-Length: 87
+Content-Length: 4
Content-Range: bytes */87
Content-Type: image/gif
+bad
</data>
</reply>