You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simultaneous file transfer to same directory using curl_multi and CURLFTP_CREATE_DIR_RETRY.
I expected the following
Second MKD failure stores last successful CWD path in ftpc->prevpath.
> CWD 1
< 250 Directory successfully changed.
> CWD 2
< 550 Failed to change directory.
> MKD 2
< 550 Create directory operation failed.
> CWD 2
< 250 Directory successfully changed.
> CWD 3
< 550 Failed to change directory.
> MKD 3
< 550 Create directory operation failed.
* Failed to MKD dir: 550
* Remembering we are in dir "/ftp_root/1/2/3/" # should not contain final 3 dir
* Uploaded unaligned file size (0 out of 351272 bytes)
* Connection #5 to host xxxx left intact
curl/libcurl version
7.72.0
operating system
openSUSE 15.2
Linux linux-jxih 5.3.18-lp152.95-default #1 SMP Tue Oct 5 07:30:50 UTC 2021 (7cfc6af) x86_64 x86_64 x86_64 GNU/Linux
proposed patch
Change behavior to allow one MKD failure per directory.
diff --git a/lib/ftp.c b/lib/ftp.c
index 0b9c9b73..db713fdd 100644
--- a/lib/ftp.c+++ b/lib/ftp.c@@ -876,9 +876,9 @@ static CURLcode ftp_state_cwd(struct Curl_easy *data,
ftpc->count2 = 0; /* count2 counts failed CWDs */
- /* count3 is set to allow a MKD to fail once. In the case when first CWD- fails and then MKD fails (due to another session raced it to create the- dir) this then allows for a second try to CWD to it */+ /* count3 is set to allow a MKD to fail once per dir. In the case when the+ first CWD fails and then MKD fails (due to another session raced it to+ create the dir) this then allows for a second try to CWD to it */
ftpc->count3 = (data->set.ftp_create_missing_dirs == 2)?1:0;
if(conn->bits.reuse && ftpc->entrypath &&
@@ -3018,6 +3018,7 @@ static CURLcode ftp_statemachine(struct Curl_easy *data,
else {
/* success */
ftpc->count2 = 0;
+ ftpc->count3 = (data->set.ftp_create_missing_dirs == 2) ? 1 : 0;
if(++ftpc->cwdcount <= ftpc->dirdepth)
/* send next CWD */
result = Curl_pp_sendf(data, &ftpc->pp, "CWD %s",
The text was updated successfully, but these errors were encountered:
I did this
Simultaneous file transfer to same directory using
curl_multi
andCURLFTP_CREATE_DIR_RETRY
.I expected the following
Second
MKD
failure stores last successfulCWD
path inftpc->prevpath
.curl/libcurl version
7.72.0
operating system
openSUSE 15.2
Linux linux-jxih 5.3.18-lp152.95-default #1 SMP Tue Oct 5 07:30:50 UTC 2021 (7cfc6af) x86_64 x86_64 x86_64 GNU/Linux
proposed patch
Change behavior to allow one MKD failure per directory.
The text was updated successfully, but these errors were encountered: