HEAD: don't force-close after response-headers
authorDaniel Stenberg <daniel@haxx.se>
Wed, 11 Jul 2012 21:13:52 +0000 (23:13 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 11 Jul 2012 22:08:37 +0000 (00:08 +0200)
A HEAD response has no body length and gets the headers like the
corresponding GET would so it should not get closed after the response
based on the same rules. This mistake caused connections that did HEAD
to get closed too often without a valid reason.

Bug: http://curl.haxx.se/bug/view.cgi?id=3542731
Reported by: Eelco Dolstra

lib/http.c

index 7b0dc38d2075418680c126904ea26ae625b1a9e8..b421a2c738a49573b43381dc2a3a29f4d4131742 100644 (file)
@@ -2851,7 +2851,8 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
 
         if((k->size == -1) && !k->chunk && !conn->bits.close &&
            (conn->httpversion >= 11) &&
-           !(conn->handler->protocol & CURLPROTO_RTSP)) {
+           !(conn->handler->protocol & CURLPROTO_RTSP) &&
+           data->set.httpreq != HTTPREQ_HEAD) {
           /* On HTTP 1.1, when connection is not to get closed, but no
              Content-Length nor Content-Encoding chunked have been
              received, according to RFC2616 section 4.4 point 5, we