aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/transfer.c3
-rw-r--r--lib/urldata.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/transfer.c b/lib/transfer.c
index a8858f173..aa4e385d1 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -697,6 +697,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
* fields. */
conn->size=0;
conn->maxdownload=0;
+ k->ignorecl = TRUE; /* ignore Content-Length headers */
break;
default:
/* nothing */
@@ -713,7 +714,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
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. */
- if ((k->httpcode != 416) &&
+ if (!k->ignorecl &&
checkprefix("Content-Length:", k->p)) {
contentlength = curlx_strtoofft(k->p+15, NULL, 10);
if (data->set.max_filesize &&
diff --git a/lib/urldata.h b/lib/urldata.h
index 27b5e2d1b..a3b2c25ff 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -494,6 +494,8 @@ struct Curl_transfer_keeper {
and we're uploading the last chunk */
bool ignorebody; /* we read a response-body but we ignore it! */
+ bool ignorecl; /* This HTTP response has no body so we ignore the Content-
+ Length: header */
};
#if defined(USE_ARES) || defined(USE_THREADING_GETHOSTBYNAME) || \