diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/transfer.c | 2 | ||||
-rw-r--r-- | lib/url.c | 4 | ||||
-rw-r--r-- | lib/urldata.h | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 8f885f5d9..d08fa594d 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -718,7 +718,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->ignorecl && + if (!k->ignorecl && !data->set.ignorecl && checkprefix("Content-Length:", k->p)) { contentlength = curlx_strtoofft(k->p+15, NULL, 10); if (data->set.max_filesize && @@ -1443,6 +1443,10 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, data->set.ftp_account = va_arg(param, char *); break; + case CURLOPT_IGNORE_CONTENT_LENGTH: + data->set.ignorecl = va_arg(param, long)?TRUE:FALSE; + break; + default: /* unknown tag and its companion, just ignore: */ result = CURLE_FAILED_INIT; /* correct this */ diff --git a/lib/urldata.h b/lib/urldata.h index 4200c3818..3afc90a4c 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -1068,6 +1068,7 @@ struct UserDefined { bool global_dns_cache; /* subject for future removal */ bool tcp_nodelay; /* whether to enable TCP_NODELAY or not */ + bool ignorecl; /* ignore content length */ }; /* |