diff options
author | Daniel Stenberg <daniel@haxx.se> | 2005-08-24 10:57:28 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2005-08-24 10:57:28 +0000 |
commit | a4773fcbbbf42a25c1037573fbab58aa275b9ed1 (patch) | |
tree | 965b924386052986179eb3717aeab0d82744bd54 /lib | |
parent | 1e038c4bc6ecc43bdbbe0e66a70001c7fe967bf6 (diff) |
Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible
from the command line tool with --ignore-content-length. This will make it
easier to download files from Apache 1.x (and similar) servers that are
still having problems serving files larger than 2 or 4 GB. When this option
is enabled, curl will simply have to wait for the server to close the
connection to signal end of transfer. I wrote test case 269 that runs a
simple test that this works.
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 */ }; /* |