From 76b3f5f2cf0f091720413690c49f8d0ada5bfae5 Mon Sep 17 00:00:00 2001 From: fractal-access <116177727+fractal-access@users.noreply.github.com> Date: Wed, 19 Oct 2022 14:37:44 +0100 Subject: [PATCH] ftp: support growing files with CURLOPT_IGNORE_CONTENT_LENGTH When using the option CURLOPT_IGNORE_CONTENT_LENGTH (set.ignorecl in code) to support growing files in FTP, the code should ignore the initial size it gets from the server as this will not be the final size of the file. This is done in ftp_state_quote() to prevent a size request being issued in the initial sequence. However, in a later call to ftp_state_get_resp() the code attempts to get the size of the content again if it doesn't already have it, by parsing the response from the RETR request. This fix prevents this parsing of the response to get the size when the set.ignorecl option is set. This should maintain the size value as -1, unknown, in this situation. Closes #9772 Conflict: NA Reference: https://github.com/curl/curl/commit/76b3f5f2cf0f091720413690c49f8d0ada5bfae5 --- lib/ftp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ftp.c b/lib/ftp.c index c6e31e1b6..c07bafe17 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -2448,6 +2448,7 @@ static CURLcode ftp_state_get_resp(struct Curl_easy *data, if((instate != FTP_LIST) && !data->state.prefer_ascii && + !data->set.ignorecl && (ftp->downloadsize < 1)) { /* * It seems directory listings either don't show the size or very -- 2.33.0