Loading docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 +10 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ .\" .TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options" .SH NAME CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length .SH SYNOPSIS .nf #include <curl/curl.h> Loading @@ -30,12 +30,18 @@ CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH, long ignore); .SH DESCRIPTION If \fIignore\fP is set to 1, ignore the Content-Length header in the HTTP response. This is useful for Apache 1.x (and similar servers) which will If \fIignore\fP is set to 1L, ignore the Content-Length header in the HTTP response and ignore asking for or relying on it for FTP transfers. This is useful for HTTP with Apache 1.x (and similar servers) which will report incorrect content length for files over 2 gigabytes. If this option is used, curl will not be able to accurately report progress, and will simply stop the download when the server ends the connection. It is also useful with FTP when for example the file is growing while the transfer is in progress which otherwise will unconditionally cause libcurl to report error. Only use this option if strictly necessary. .SH DEFAULT 0 Loading @@ -54,7 +60,7 @@ if(curl) { } .fi .SH AVAILABILITY Added in 7.14.1 Added in 7.14.1. Support for FTP added in 7.46.0. .SH RETURN VALUE Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. .SH "SEE ALSO" Loading lib/ftp.c +14 −2 Original line number Diff line number Diff line Loading @@ -1789,11 +1789,23 @@ static CURLcode ftp_state_quote(struct connectdata *conn, Curl_pgrsSetDownloadSize(data, ftpc->known_filesize); result = ftp_state_retr(conn, ftpc->known_filesize); } else { if(data->set.ignorecl) { /* This code is to support download of growing files. It prevents the state machine from requesting the file size from the server. With an unknown file size the download continues until the server terminates it, otherwise the client stops if the received byte count exceeds the reported file size. Set option CURLOPT_IGNORE_CONTENT_LENGTH to 1 to enable this behavior.*/ PPSENDF(&ftpc->pp, "RETR %s", ftpc->file); state(conn, FTP_RETR); } else { PPSENDF(&ftpc->pp, "SIZE %s", ftpc->file); state(conn, FTP_RETR_SIZE); } } } break; case FTP_STOR_PREQUOTE: result = ftp_state_ul_setup(conn, FALSE); Loading Loading
docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 +10 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ .\" .TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options" .SH NAME CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length .SH SYNOPSIS .nf #include <curl/curl.h> Loading @@ -30,12 +30,18 @@ CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH, long ignore); .SH DESCRIPTION If \fIignore\fP is set to 1, ignore the Content-Length header in the HTTP response. This is useful for Apache 1.x (and similar servers) which will If \fIignore\fP is set to 1L, ignore the Content-Length header in the HTTP response and ignore asking for or relying on it for FTP transfers. This is useful for HTTP with Apache 1.x (and similar servers) which will report incorrect content length for files over 2 gigabytes. If this option is used, curl will not be able to accurately report progress, and will simply stop the download when the server ends the connection. It is also useful with FTP when for example the file is growing while the transfer is in progress which otherwise will unconditionally cause libcurl to report error. Only use this option if strictly necessary. .SH DEFAULT 0 Loading @@ -54,7 +60,7 @@ if(curl) { } .fi .SH AVAILABILITY Added in 7.14.1 Added in 7.14.1. Support for FTP added in 7.46.0. .SH RETURN VALUE Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. .SH "SEE ALSO" Loading
lib/ftp.c +14 −2 Original line number Diff line number Diff line Loading @@ -1789,11 +1789,23 @@ static CURLcode ftp_state_quote(struct connectdata *conn, Curl_pgrsSetDownloadSize(data, ftpc->known_filesize); result = ftp_state_retr(conn, ftpc->known_filesize); } else { if(data->set.ignorecl) { /* This code is to support download of growing files. It prevents the state machine from requesting the file size from the server. With an unknown file size the download continues until the server terminates it, otherwise the client stops if the received byte count exceeds the reported file size. Set option CURLOPT_IGNORE_CONTENT_LENGTH to 1 to enable this behavior.*/ PPSENDF(&ftpc->pp, "RETR %s", ftpc->file); state(conn, FTP_RETR); } else { PPSENDF(&ftpc->pp, "SIZE %s", ftpc->file); state(conn, FTP_RETR_SIZE); } } } break; case FTP_STOR_PREQUOTE: result = ftp_state_ul_setup(conn, FALSE); Loading