8000 Regression from 8.11.0 when performing ftp custom request · Issue #16380 · curl/curl · GitHub
[go: up one dir, main page]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression from 8.11.0 when performing ftp custom request #16380

Open
rmja opened this issue Feb 18, 2025 · 8 comments
Open

Regression from 8.11.0 when performing ftp custom request #16380

rmja opened this issue Feb 18, 2025 · 8 comments
Assignees

Comments

@rmja
Copy link
rmja commented Feb 18, 2025

I did this

The following has worked fine up to and including v. 8.11.0. I am trying to upgrade to 8.12.1 and I start to see this issue.

To support different ftp servers I have the following logic in my code:

  • Try and send a MLSD command - if it succeeds, then read and parse the response - we are good
  • If it fails with FTP_COULDNT_RETR_FILE, then try and send a LIST command - read and parse the response

My problem exist when the server does not support the MLSD command, and I then re-use the curl easy handle for the next LIST command. There is a call to curl_easy_reset in between the two perform operations. This has worked fine until now, but I now get a SSL_CACERT error code when running the second LIST perform operation. It seems as if the handle is not correctly reset with respect to tls when reset is invoked on a handle that has returned an error.

If I use two different curl easy handles, one for each of the commands, then it works just fine.

Verbose output from the debug function for a session to a vsftpd server that does not support MLSD
[1] Creating curl handle 1567671710160
[11] Scheduling perform on curl handle 1567671710160
[12] Running perform on curl handle 1567671710160
CURLINFO_TEXT: 09.34.06.887 [FTP] [STOP] setup connection -> 0
CURLINFO_TEXT: 09.34.06.920 Host ftp-server.com:21 was resolved.
CURLINFO_TEXT: 09.34.06.922 IPv6: (none)
CURLINFO_TEXT: 09.34.06.923 IPv4: 11.22.33.44
CURLINFO_TEXT: 09.34.06.925   Trying 11.22.33.44:21...
CURLINFO_TEXT: 09.34.06.926 [TCP] cf_socket_open() -> 0, fd=1216
CURLINFO_TEXT: 09.34.06.928 [TCP] local address 0.0.0.0 port 27465...
CURLINFO_TEXT: 09.34.06.929 [TCP] adjust_pollset, !connected, POLLOUT fd=1216
CURLINFO_TEXT: 09.34.06.930 [TCP] not connected yet
CURLINFO_TEXT: 09.34.06.932 [TCP] adjust_pollset, !connected, POLLOUT fd=1216
CURLINFO_TEXT: 09.34.06.933 [TCP] not connected yet
CURLINFO_TEXT: 09.34.06.934 [TCP] adjust_pollset, !connected, POLLOUT fd=1216
CURLINFO_TEXT: 09.34.06.953 [TCP] connected
CURLINFO_TEXT: 09.34.06.955 Connected to ftp-server.com (11.22.33.44) port 21
CURLINFO_TEXT: 09.34.06.956 [FTP] [STOP] -> [WAIT220]
CURLINFO_TEXT: 09.34.06.978 [TCP] recv(len=900) -> 20, err=0
CURLINFO_HEADER_IN: 09.34.06.980 220 (vsFTPd 3.0.5)
CURLINFO_TEXT: 09.34.06.982 [TCP] send(len=10) -> 10, err=0
CURLINFO_HEADER_OUT: 09.34.06.983 AUTH SSL
CURLINFO_TEXT: 09.34.06.985 [FTP] [WAIT220] -> [AUTH]
CURLINFO_TEXT: 09.34.07.004 [TCP] recv(len=900) -> 31, err=0
CURLINFO_HEADER_IN: 09.34.07.006 234 Proceed with negotiation.
CURLINFO_TEXT: 09.34.07.007 [SSL] added
CURLINFO_TEXT: 09.34.07.009 [SSL] cf_connect()
CURLINFO_TEXT: 09.34.07.010 [TCP] send(len=209) -> 209, err=0
CURLINFO_TEXT: 09.34.07.012 [SSL] ossl_bio_cf_out_write(len=209) -> 209, err=0
CURLINFO_TEXT: 09.34.07.013 TLSv1.2 (OUT), TLS handshake, Client hello (1):
CURLINFO_SSL_DATA_OUT: 09.34.07.014 �CURLINFO_TEXT: 09.34.07.015 [TCP] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.016 [SSL] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.017 [SSL] ossl_populate_x509_store, path=none, blob=0
CURLINFO_TEXT: 09.34.07.027 successfully imported Windows ROOT store
CURLINFO_TEXT: 09.34.07.032 successfully imported Windows CA store
CURLINFO_TEXT: 09.34.07.034 [SSL] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 09.34.07.035 [SSL] SSL_connect() -> want recv
CURLINFO_TEXT: 09.34.07.037 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.038 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.040 [TCP] recv(len=93) -> 93, err=0
CURLINFO_TEXT: 09.34.07.041 [SSL] ossl_bio_cf_in_read(len=93) -> 93, err=0
CURLINFO_TEXT: 09.34.07.042 TLSv1.2 (IN), TLS handshake, Server hello (2):
CURLINFO_SSL_DATA_IN: 09.34.07.043 �CURLINFO_TEXT: 09.34.07.044 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.046 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.047 [TCP] recv(len=2029) -> 2029, err=0
CURLINFO_TEXT: 09.34.07.048 [SSL] ossl_bio_cf_in_read(len=2029) -> 2029, err=0
CURLINFO_TEXT: 09.34.07.049 TLSv1.2 (IN), TLS handshake, Certificate (11):
CURLINFO_SSL_DATA_IN: 09.34.07.050 �CURLINFO_TEXT: 09.34.07.053 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.055 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.056 [TCP] recv(len=148) -> 148, err=0
CURLINFO_TEXT: 09.34.07.058 [SSL] ossl_bio_cf_in_read(len=148) -> 148, err=0
CURLINFO_TEXT: 09.34.07.059 TLSv1.2 (IN), TLS handshake, Server key exchange (12):
CURLINFO_SSL_DATA_IN: 09.34.07.060 CURLINFO_TEXT: 09.34.07.062 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.064 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.065 [TCP] recv(len=52) -> 52, err=0
CURLINFO_TEXT: 09.34.07.066 [SSL] ossl_bio_cf_in_read(len=52) -> 52, err=0
CURLINFO_TEXT: 09.34.07.068 TLSv1.2 (IN), TLS handshake, Request CERT (13):
CURLINFO_SSL_DATA_IN: 09.34.07.069 
CURLINFO_TEXT: 09.34.07.070 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.071 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.073 [TCP] recv(len=4) -> 4, err=0
CURLINFO_TEXT: 09.34.07.074 [SSL] ossl_bio_cf_in_read(len=4) -> 4, err=0
CURLINFO_TEXT: 09.34.07.075 TLSv1.2 (IN), TLS handshake, Server finished (14):
CURLINFO_SSL_DATA_IN: 09.34.07.076 �CURLINFO_TEXT: 09.34.07.077 TLSv1.2 (OUT), TLS handshake, Certificate (11):
CURLINFO_SSL_DATA_OUT: 09.34.07.078 �CURLINFO_TEXT: 09.34.07.084 TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
CURLINFO_SSL_DATA_OUT: 09.34.07.085 �CURLINFO_TEXT: 09.34.07.087 TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
CURLINFO_SSL_DATA_OUT: 09.34.07.088 �
CURLINFO_TEXT: 09.34.07.090 TLSv1.2 (OUT), TLS handshake, Finished (20):
CURLINFO_SSL_DATA_OUT: 09.34.07.091 �CURLINFO_TEXT: 09.34.07.092 [TCP] send(len=138) -> 138, err=0
CURLINFO_TEXT: 09.34.07.094 [SSL] ossl_bio_cf_out_write(len=138) -> 138, err=0
CURLINFO_TEXT: 09.34.07.095 [TCP] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.096 [SSL] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.098 [SSL] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 09.34.07.100 [SSL] SSL_connect() -> want recv
CURLINFO_TEXT: 09.34.07.118 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.120 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.122 [TCP] recv(len=1) -> 1, err=0
CURLINFO_TEXT: 09.34.07.123 [SSL] ossl_bio_cf_in_read(len=1) -> 1, err=0
CURLINFO_TEXT: 09.34.07.124 TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
CURLINFO_SSL_DATA_IN: 09.34.07.125 �
CURLINFO_TEXT: 09.34.07.127 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.128 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.129 [TCP] recv(len=40) -> 40, err=0
CURLINFO_TEXT: 09.34.07.131 [SSL] ossl_bio_cf_in_read(len=40) -> 40, err=0
CURLINFO_TEXT: 09.34.07.132 TLSv1.2 (IN), TLS handshake, Finished (20):
CURLINFO_SSL_DATA_IN: 09.34.07.134 �CURLINFO_TEXT: 09.34.07.135 SSL connection using TLSv1.2 / ECDHE-ECDSA-AES256-GCM-SHA384 / [blank] / UNDEF
CURLINFO_TEXT: 09.34.07.136 Server certificate:
CURLINFO_TEXT: 09.34.07.138  subject: CN=ftp-server.com
CURLINFO_TEXT: 09.34.07.139  start date: Jan  8 11:05:49 2025 GMT
CURLINFO_TEXT: 09.34.07.140  expire date: Apr  8 11:05:48 2025 GMT
CURLINFO_TEXT: 09.34.07.142  subjectAltName: host "ftp-server.com" matched cert's "ftp-server.com"
CURLINFO_TEXT: 09.34.07.144  issuer: C=US; O=Let's Encrypt; CN=E5
CURLINFO_TEXT: 09.34.07.145  SSL certificate verify ok.
CURLINFO_TEXT: 09.34.07.146   Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
CURLINFO_TEXT: 09.34.07.148   Certificate level 1: Public key type ? (384/192 Bits/secBits), signed using sha256WithRSAEncryption
CURLINFO_TEXT: 09.34.07.150 [SSL] cf_connect() -> 0, done=1
CURLINFO_TEXT: 09.34.07.151 Connected to ftp-server.com (11.22.33.44) port 21
CURLINFO_TEXT: 09.34.07.153 [TCP] send(len=45) -> 45, err=0
CURLINFO_TEXT: 09.34.07.154 [SSL] ossl_bio_cf_out_write(len=45) -> 45, err=0
CURLINFO_HEADER_OUT: 09.34.07.155 USER username
CURLINFO_TEXT: 09.34.07.157 [FTP] [AUTH] -> [USER]
CURLINFO_TEXT: 09.34.07.176 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.178 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.179 [TCP] recv(len=58) -> 58, err=0
CURLINFO_TEXT: 09.34.07.180 [SSL] ossl_bio_cf_in_read(len=58) -> 58, err=0
CURLINFO_TEXT: 09.34.07.182 [SSL] cf_recv(len=900) -> 34, 0
CURLINFO_HEADER_IN: 09.34.07.183 331 Please specify the password.
CURLINFO_TEXT: 09.34.07.184 [TCP] send(len=47) -> 47, err=0
CURLINFO_TEXT: 09.34.07.186 [SSL] ossl_bio_cf_out_write(len=47) -> 47, err=0
CURLINFO_HEADER_OUT: 09.34.07.187 PASS password
CURLINFO_TEXT: 09.34.07.189 [FTP] [USER] -> [PASS]
CURLINFO_TEXT: 09.34.07.234 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.236 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.237 [TCP] recv(len=47) -> 47, err=0
CURLINFO_TEXT: 09.34.07.238 [SSL] ossl_bio_cf_in_read(len=47) -> 47, err=0
CURLINFO_TEXT: 09.34.07.239 [SSL] cf_recv(len=900) -> 23, 0
CURLINFO_HEADER_IN: 09.34.07.241 230 Login successful.
CURLINFO_TEXT: 09.34.07.242 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 09.34.07.244 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 09.34.07.245 PBSZ 0
CURLINFO_TEXT: 09.34.07.246 [FTP] [PASS] -> [PBSZ]
CURLINFO_TEXT: 09.34.07.265 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.268 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.270 [TCP] recv(len=44) -> 44, err=0
CURLINFO_TEXT: 09.34.07.272 [SSL] ossl_bio_cf_in_read(len=44) -> 44, err=0
CURLINFO_TEXT: 09.34.07.273 [SSL] cf_recv(len=900) -> 20, 0
CURLINFO_HEADER_IN: 09.34.07.274 200 PBSZ set to 0.
CURLINFO_TEXT: 09.34.07.275 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 09.34.07.277 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 09.34.07.278 PROT P
CURLINFO_TEXT: 09.34.07.279 [FTP] [PBSZ] -> [PROT]
CURLINFO_TEXT: 09.34.07.298 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.300 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.302 [TCP] recv(len=47) -> 47, err=0
CURLINFO_TEXT: 09.34.07.303 [SSL] ossl_bio_cf_in_read(len=47) -> 47, err=0
CURLINFO_TEXT: 09.34.07.305 [SSL] cf_recv(len=900) -> 23, 0
CURLINFO_HEADER_IN: 09.34.07.306 200 PROT now Private.
CURLINFO_TEXT: 09.34.07.308 [TCP] send(len=34) -> 34, err=0
CURLINFO_TEXT: 09.34.07.310 [SSL] ossl_bio_cf_out_write(len=34) -> 34, err=0
CURLINFO_HEADER_OUT: 09.34.07.311 PWD
CURLINFO_TEXT: 09.34.07.312 [FTP] [PROT] -> [PWD]
CURLINFO_TEXT: 09.34.07.331 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.333 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.335 [TCP] recv(len=58) -> 58, err=0
CURLINFO_TEXT: 09.34.07.337 [SSL] ossl_bio_cf_in_read(len=58) -> 58, err=0
CURLINFO_TEXT: 09.34.07.338 [SSL] cf_recv(len=900) -> 34, 0
CURLINFO_HEADER_IN: 09.34.07.339 257 "/" is the current directory
CURLINFO_TEXT: 09.34.07.341 Entry path is '/'
CURLINFO_TEXT: 09.34.07.343 [FTP] [PWD] -> [STOP]
CURLINFO_TEXT: 09.34.07.345 [FTP] [STOP] protocol connect phase DONE
CURLINFO_TEXT: 09.34.07.346 Request has same path as previous transfer
CURLINFO_TEXT: 09.34.07.348 [FTP] [STOP] DO phase starts
CURLINFO_TEXT: 09.34.07.350 [TCP] send(len=35) -> 35, err=0
CURLINFO_TEXT: 09.34.07.352 [SSL] ossl_bio_cf_out_write(len=35) -> 35, err=0
CURLINFO_HEADER_OUT: 09.34.07.353 EPSV
CURLINFO_TEXT: 09.34.07.355 [FTP] [STOP] -> [PASV]
CURLINFO_TEXT: 09.34.07.357 Connect data stream passively
CURLINFO_TEXT: 09.34.07.359 [FTP] [PASV] perform, awaiting DATA connect
CURLINFO_TEXT: 09.34.07.373 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.375 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.378 [TCP] recv(len=72) -> 72, err=0
CURLINFO_TEXT: 09.34.07.380 [SSL] ossl_bio_cf_in_read(len=72) -> 72, err=0
CURLINFO_TEXT: 09.34.07.383 [SSL] cf_recv(len=900) -> 48, 0
CURLINFO_HEADER_IN: 09.34.07.385 229 Entering Extended Passive Mode (|||20728|)
CURLINFO_TEXT: 09.34.07.388 Connecting to 11.22.33.44 (11.22.33.44) port 20728
CURLINFO_TEXT: 09.34.07.390 [FTP] [PASV] -> [STOP]
CURLINFO_TEXT: 09.34.07.392 [FTP] [STOP] DO phase is complete2
CURLINFO_TEXT: 09.34.07.394   Trying 11.22.33.44:20728...
CURLINFO_TEXT: 09.34.07.396 [TCP-1] cf_socket_open() -> 0, fd=1416
CURLINFO_TEXT: 09.34.07.398 [TCP-1] local address 0.0.0.0 port 27466...
CURLINFO_TEXT: 09.34.07.400 [FTP] [STOP] ftp_domore_getsock()
CURLINFO_TEXT: 09.34.07.402 [TCP-1] adjust_pollset, !connected, POLLOUT fd=1416
CURLINFO_TEXT: 09.34.07.422 [TCP-1] connected
CURLINFO_TEXT: 09.34.07.424 [SSL-1] cf_connect()
CURLINFO_TEXT: 09.34.07.426 SSL reusing session
CURLINFO_TEXT: 09.34.07.428 [TCP-1] send(len=241) -> 241, err=0
CURLINFO_TEXT: 09.34.07.430 [SSL-1] ossl_bio_cf_out_write(len=241) -> 241, err=0
CURLINFO_TEXT: 09.34.07.432 TLSv1.2 (OUT), TLS handshake, Client hello (1):
CURLINFO_SSL_DATA_OUT: 09.34.07.434 �CURLINFO_TEXT: 09.34.07.437 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.439 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.441 [SSL-1] ossl_populate_x509_store, path=none, blob=0
CURLINFO_TEXT: 09.34.07.450 successfully imported Windows ROOT store
CURLINFO_TEXT: 09.34.07.455 successfully imported Windows CA store
CURLINFO_TEXT: 09.34.07.457 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 09.34.07.459 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 09.34.07.460 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 09.34.07.462 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 09.34.07.463 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 09.34.07.465 TYPE A
CURLINFO_TEXT: 09.34.07.466 [FTP] [STOP] -> [LIST_TYPE]
CURLINFO_TEXT: 09.34.07.468 [FTP] [LIST_TYPE] ftp_domore_getsock()
CURLINFO_TEXT: 09.34.07.470 [SSL-1] adjust_pollset, POLLIN fd=1416
CURLINFO_TEXT: 09.34.07.471 [TCP-1] adjust_pollset, !active, POLLIN fd=1416
CURLINFO_TEXT: 09.34.07.485 [SSL-1] cf_connect()
CURLINFO_TEXT: 09.34.07.487 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT:
8000
 09.34.07.489 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.491 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 09.34.07.493 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 09.34.07.495 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 09.34.07.497 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.499 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.501 [TCP] recv(len=54) -> 54, err=0
CURLINFO_TEXT: 09.34.07.503 [SSL] ossl_bio_cf_in_read(len=54) -> 54, err=0
CURLINFO_TEXT: 09.34.07.505 [SSL] cf_recv(len=900) -> 30, 0
CURLINFO_HEADER_IN: 09.34.07.506 200 Switching to ASCII mode.
CURLINFO_TEXT: 09.34.07.508 [TCP] send(len=35) -> 35, err=0
CURLINFO_TEXT: 09.34.07.510 [SSL] ossl_bio_cf_out_write(len=35) -> 35, err=0
CURLINFO_HEADER_OUT: 09.34.07.512 MLSD
CURLINFO_TEXT: 09.34.07.514 [FTP] [LIST_TYPE] -> [LIST]
CURLINFO_TEXT: 09.34.07.516 [FTP] [LIST] ftp_domore_getsock()
CURLINFO_TEXT: 09.34.07.518 [SSL-1] adjust_pollset, POLLIN fd=1416
CURLINFO_TEXT: 09.34.07.519 [TCP-1] adjust_pollset, !active, POLLIN fd=1416
CURLINFO_TEXT: 09.34.07.531 [SSL-1] cf_connect()
CURLINFO_TEXT: 09.34.07.533 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.535 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 09.34.07.537 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 09.34.07.539 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 09.34.07.540 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 09.34.07.542 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.544 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 09.34.07.547 [TCP] recv(len=46) -> 46, err=0
CURLINFO_TEXT: 09.34.07.549 [SSL] ossl_bio_cf_in_read(len=46) -> 46, err=0
CURLINFO_TEXT: 09.34.07.550 [SSL] cf_recv(len=900) -> 22, 0
CURLINFO_HEADER_IN: 09.34.07.552 500 Unknown command.
CURLINFO_TEXT: 09.34.07.554 RETR response: 500
CURLINFO_TEXT: 09.34.07.556 Remembering we are in dir ""
CURLINFO_TEXT: 09.34.07.558 [FTP] [LIST] done, result=0
CURLINFO_TEXT: 09.34.07.560 Connection #0 to host ftp-server.com left intact
[12] Perform completed with code FTP_COULDNT_RETR_FILE on curl handle 1567671710160
[11] Resetting curl handle 1567671710160
[13] Scheduling perform on curl handle 1567671710160
[11] Running perform on curl handle 1567671710160
[11] Perform completed with code SSL_CACERT on curl handle 1567671710160
[14] Resetting curl handle 1567671710160
SSL_CACERT when processing effective url 'ftp://ftp-server.com:21/'

I expected the following

I expect that I can re-use the easy handle after a curl_easy_reset even though the perform operation on that handle did not succeed.

curl/libcurl version

libcurl 8.12.1
This previously worked in 8.11.0

operating system

Windows, with 64 bit build from https://curl.se/windows/

@bagder bagder added the FTP label Feb 18, 2025
@bagder
Copy link
Member
bagder commented Feb 18, 2025

Does it work correctly if you do not reset the handle in between the transfers?

@icing
Copy link
Contributor
icing commented Feb 19, 2025

It would make analysis of what is going on easer if you create a curl trace (via CURLOPT_DEBUGFUNCTION) and setting

curl_global_trace('all');

after the global init. If there is an SSL error it points to curl trying to open a new connection for the reset easy handle instead of reusing the previous one (I am guess here that is what you want). The trace would show exactly what is happening.

@icing
Copy link
Contributor
icing commented Feb 19, 2025

Another take: maybe you are seeing the same issue as reported in #16384. I made a fix for that one in #16392.

Could you take the version from the PR out for a spin in your setup? Thanks.

@icing icing self-assigned this Feb 19, 2025
@rmja
Copy link
Author
rmja commented Feb 19, 2025

Is there a nightly build i can download somewhere to try out?

@icing
Copy link
Contributor
icing commented Feb 19, 2025

Is there a nightly build i can download somewhere to try out?

Not for the pull request. Once merged, I believe someone does builds. @vszakats can you help?

@vszakats
Copy link
Member
vszakats commented Feb 19, 2025

Yes, you can find daily builds here: https://github.com/curl/curl-for-win/actions/workflows/daily.yml
It's the curl-windows-daily artifact. Will run today in about 8 hours.

@rmja
Copy link
Author
rmja commented Feb 19, 2025

Perfect. I will follow the pr, and when merged, try the nightly build and see if it solves the issue.

@rmja
Copy link
Author
rmja commented Feb 20, 2025

I know that #16392 is not merged yet. Just wanted to let you know that the most recent daily build still has the issue.

Here is a dump with `curl_global_trace('all')` as requested
[15] Creating curl handle 2531925010144
[17] Scheduling perform on curl handle 2531925010144
[18] Running perform on curl handle 2531925010144
CURLINFO_TEXT: 10.55.44.731 [READ] client_reset, clear readers
CURLINFO_TEXT: 10.55.44.733 [FTP] [STOP] setup connection -> 0
CURLINFO_TEXT: 10.55.44.770 Host ftp-server.com:21 was resolved.
CURLINFO_TEXT: 10.55.44.771 IPv6: (none)
CURLINFO_TEXT: 10.55.44.772 IPv4: 11.22.33.44
CURLINFO_TEXT: 10.55.44.773 [SETUP] added
CURLINFO_TEXT: 10.55.44.774 [HAPPY-EYEBALLS] created ipv4 (timeout 299955ms)
CURLINFO_TEXT: 10.55.44.775 [HAPPY-EYEBALLS] ipv4 starting (timeout=299955ms)
CURLINFO_TEXT: 10.55.44.776   Trying 11.22.33.44:21...
CURLINFO_TEXT: 10.55.44.777 [TCP] cf_socket_open() -> 0, fd=1704
CURLINFO_TEXT: 10.55.44.778 [TCP] local address 0.0.0.0 port 16537...
CURLINFO_TEXT: 10.55.44.779 [HAPPY-EYEBALLS] ipv4 connect -> 0, connected=0
CURLINFO_TEXT: 10.55.44.780 [TCP] adjust_pollset, !connected, POLLOUT fd=1704
CURLINFO_TEXT: 10.55.44.781 [HAPPY-EYEBALLS] adjust_pollset -> 1 socks
CURLINFO_TEXT: 10.55.44.782 [TCP] not connected yet
CURLINFO_TEXT: 10.55.44.783 [HAPPY-EYEBALLS] ipv4 connect -> 0, connected=0
CURLINFO_TEXT: 10.55.44.784 [TCP] adjust_pollset, !connected, POLLOUT fd=1704
CURLINFO_TEXT: 10.55.44.784 [HAPPY-EYEBALLS] adjust_pollset -> 1 socks
CURLINFO_TEXT: 10.55.44.802 [TCP] connected
CURLINFO_TEXT: 10.55.44.804 [HAPPY-EYEBALLS] ipv4 connect -> 0, connected=1
CURLINFO_TEXT: 10.55.44.805 [HAPPY-EYEBALLS] Connected to ftp-server.com (11.22.33.44) port 21
CURLINFO_TEXT: 10.55.44.806 Connected to ftp-server.com (11.22.33.44) port 21
CURLINFO_TEXT: 10.55.44.806 [FTP] [STOP] -> [WAIT220]
CURLINFO_TEXT: 10.55.44.832 [TCP] recv(len=900) -> 20, err=0
CURLINFO_HEADER_IN: 10.55.44.834 220 (vsFTPd 3.0.5)
CURLINFO_TEXT: 10.55.44.835 [WRITE] download_write header(type=2, blen=20) -> 0
CURLINFO_TEXT: 10.55.44.836 [WRITE] client_write(type=2, len=20) -> 0
CURLINFO_TEXT: 10.55.44.837 [TCP] send(len=10) -> 10, err=0
CURLINFO_HEADER_OUT: 10.55.44.838 AUTH SSL
CURLINFO_TEXT: 10.55.44.839 [FTP] [WAIT220] -> [AUTH]
CURLINFO_TEXT: 10.55.44.860 [TCP] recv(len=900) -> 31, err=0
CURLINFO_HEADER_IN: 10.55.44.862 234 Proceed with negotiation.
CURLINFO_TEXT: 10.55.44.863 [WRITE] download_write header(type=2, blen=31) -> 0
CURLINFO_TEXT: 10.55.44.864 [WRITE] client_write(type=2, len=31) -> 0
CURLINFO_TEXT: 10.55.44.869 [SSL] added
CURLINFO_TEXT: 10.55.44.876 [SSL] cf_connect()
CURLINFO_TEXT: 10.55.44.878 [SSLS] find peer slot for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G among 3 slots
CURLINFO_TEXT: 10.55.44.879 [SSLS] peer not found for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G
CURLINFO_TEXT: 10.55.44.880 [SSLS] no cached session for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G
CURLINFO_TEXT: 10.55.44.882 [TCP] send(len=209) -> 209, err=0
CURLINFO_TEXT: 10.55.44.883 [SSL] ossl_bio_cf_out_write(len=209) -> 209, err=0
CURLINFO_TEXT: 10.55.44.884 TLSv1.2 (OUT), TLS handshake, Client hello (1):
CURLINFO_SSL_DATA_OUT: 10.55.44.885 �CURLINFO_TEXT: 10.55.44.886 [TCP] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.44.887 [SSL] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.44.888 [SSL] ossl_populate_x509_store, path=none, blob=0
CURLINFO_TEXT: 10.55.44.897 successfully imported Windows ROOT store
CURLINFO_TEXT: 10.55.44.900 successfully imported Windows CA store
CURLINFO_TEXT: 10.55.44.902 [SSL] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 10.55.44.903 [SSL] SSL_connect() -> want recv
CURLINFO_TEXT: 10.55.44.905 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.906 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.906 [TCP] recv(len=93) -> 93, err=0
CURLINFO_TEXT: 10.55.44.907 [SSL] ossl_bio_cf_in_read(len=93) -> 93, err=0
CURLINFO_TEXT: 10.55.44.908 TLSv1.2 (IN), TLS handshake, Server hello (2):
CURLINFO_SSL_DATA_IN: 10.55.44.909 �CURLINFO_TEXT: 10.55.44.910 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.911 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.912 [TCP] recv(len=2029) -> 2029, err=0
CURLINFO_TEXT: 10.55.44.913 [SSL] ossl_bio_cf_in_read(len=2029) -> 2029, err=0
CURLINFO_TEXT: 10.55.44.914 TLSv1.2 (IN), TLS handshake, Certificate (11):
CURLINFO_SSL_DATA_IN: 10.55.44.915 �CURLINFO_TEXT: 10.55.44.919 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.920 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.920 [TCP] recv(len=148) -> 148, err=0
CURLINFO_TEXT: 10.55.44.921 [SSL] ossl_bio_cf_in_read(len=148) -> 148, err=0
CURLINFO_TEXT: 10.55.44.922 TLSv1.2 (IN), TLS handshake, Server key exchange (12):
CURLINFO_SSL_DATA_IN: 10.55.44.923 CURLINFO_TEXT: 10.55.44.924 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.925 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.926 [TCP] recv(len=52) -> 52, err=0
CURLINFO_TEXT: 10.55.44.927 [SSL] ossl_bio_cf_in_read(len=52) -> 52, err=0
CURLINFO_TEXT: 10.55.44.928 TLSv1.2 (IN), TLS handshake, Request CERT (13):
CURLINFO_SSL_DATA_IN: 10.55.44.929 
CURLINFO_TEXT: 10.55.44.930 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.930 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.931 [TCP] recv(len=4) -> 4, err=0
CURLINFO_TEXT: 10.55.44.932 [SSL] ossl_bio_cf_in_read(len=4) -> 4, err=0
CURLINFO_TEXT: 10.55.44.933 TLSv1.2 (IN), TLS handshake, Server finished (14):
CURLINFO_SSL_DATA_IN: 10.55.44.934 �CURLINFO_TEXT: 10.55.44.935 TLSv1.2 (OUT), TLS handshake, Certificate (11):
CURLINFO_SSL_DATA_OUT: 10.55.44.935 �CURLINFO_TEXT: 10.55.44.940 TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
CURLINFO_SSL_DATA_OUT: 10.55.44.942 �CURLINFO_TEXT: 10.55.44.943 TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
CURLINFO_SSL_DATA_OUT: 10.55.44.944 �
CURLINFO_TEXT: 10.55.44.945 TLSv1.2 (OUT), TLS handshake, Finished (20):
CURLINFO_SSL_DATA_OUT: 10.55.44.946 �CURLINFO_TEXT: 10.55.44.947 [TCP] send(len=138) -> 138, err=0
CURLINFO_TEXT: 10.55.44.947 [SSL] ossl_bio_cf_out_write(len=138) -> 138, err=0
CURLINFO_TEXT: 10.55.44.948 [TCP] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.44.949 [SSL] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.44.950 [SSL] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 10.55.44.951 [SSL] SSL_connect() -> want recv
CURLINFO_TEXT: 10.55.44.971 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.973 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.974 [TCP] recv(len=1) -> 1, err=0
CURLINFO_TEXT: 10.55.44.975 [SSL] ossl_bio_cf_in_read(len=1) -> 1, err=0
CURLINFO_TEXT: 10.55.44.976 TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
CURLINFO_SS
8000
L_DATA_IN: 10.55.44.977 �
CURLINFO_TEXT: 10.55.44.978 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.979 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.44.979 [TCP] recv(len=40) -> 40, err=0
CURLINFO_TEXT: 10.55.44.980 [SSL] ossl_bio_cf_in_read(len=40) -> 40, err=0
CURLINFO_TEXT: 10.55.44.981 TLSv1.2 (IN), TLS handshake, Finished (20):
CURLINFO_SSL_DATA_IN: 10.55.44.982 �CURLINFO_TEXT: 10.55.44.983 [SSLS] find peer slot for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G among 3 slots
CURLINFO_TEXT: 10.55.44.984 [SSLS] peer not found for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G
CURLINFO_TEXT: 10.55.44.984 [SSLS] added session for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G [proto=0x303, valid_secs=7200, alpn=(nil), earlydata=0, quic_tp=no], peer has 1 sessions now
CURLINFO_TEXT: 10.55.44.985 SSL connection using TLSv1.2 / ECDHE-ECDSA-AES256-GCM-SHA384 / [blank] / UNDEF
CURLINFO_TEXT: 10.55.44.986 Server certificate:
CURLINFO_TEXT: 10.55.44.987  subject: CN=ftp-server.com
CURLINFO_TEXT: 10.55.44.988  start date: Jan  8 11:05:49 2025 GMT
CURLINFO_TEXT: 10.55.44.988  expire date: Apr  8 11:05:48 2025 GMT
CURLINFO_TEXT: 10.55.44.989  subjectAltName: host "ftp-server.com" matched cert's "ftp-server.com"
CURLINFO_TEXT: 10.55.44.990  issuer: C=US; O=Let's Encrypt; CN=E5
CURLINFO_TEXT: 10.55.44.991  SSL certificate verify ok.
CURLINFO_TEXT: 10.55.44.992   Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
CURLINFO_TEXT: 10.55.44.993   Certificate level 1: Public key type ? (384/192 Bits/secBits), signed using sha256WithRSAEncryption
CURLINFO_TEXT: 10.55.44.994 [SSL] cf_connect() -> 0, done=1
CURLINFO_TEXT: 10.55.44.995 Connected to ftp-server.com (11.22.33.44) port 21
CURLINFO_TEXT: 10.55.44.995 [TCP] send(len=45) -> 45, err=0
CURLINFO_TEXT: 10.55.44.996 [SSL] ossl_bio_cf_out_write(len=45) -> 45, err=0
CURLINFO_HEADER_OUT: 10.55.44.997 USER username
CURLINFO_TEXT: 10.55.44.998 [FTP] [AUTH] -> [USER]
CURLINFO_TEXT: 10.55.45.018 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.020 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.022 [TCP] recv(len=58) -> 58, err=0
CURLINFO_TEXT: 10.55.45.024 [SSL] ossl_bio_cf_in_read(len=58) -> 58, err=0
CURLINFO_TEXT: 10.55.45.026 [SSL] cf_recv(len=900) -> 34, 0
CURLINFO_HEADER_IN: 10.55.45.028 331 Please specify the password.
CURLINFO_TEXT: 10.55.45.029 [WRITE] download_write header(type=2, blen=34) -> 0
CURLINFO_TEXT: 10.55.45.030 [WRITE] client_write(type=2, len=34) -> 0
CURLINFO_TEXT: 10.55.45.031 [TCP] send(len=47) -> 47, err=0
CURLINFO_TEXT: 10.55.45.032 [SSL] ossl_bio_cf_out_write(len=47) -> 47, err=0
CURLINFO_HEADER_OUT: 10.55.45.033 PASS password
CURLINFO_TEXT: 10.55.45.034 [FTP] [USER] -> [PASS]
CURLINFO_TEXT: 10.55.45.079 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.081 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.082 [TCP] recv(len=47) -> 47, err=0
CURLINFO_TEXT: 10.55.45.083 [SSL] ossl_bio_cf_in_read(len=47) -> 47, err=0
CURLINFO_TEXT: 10.55.45.084 [SSL] cf_recv(len=900) -> 23, 0
CURLINFO_HEADER_IN: 10.55.45.085 230 Login successful.
CURLINFO_TEXT: 10.55.45.085 [WRITE] download_write header(type=2, blen=23) -> 0
CURLINFO_TEXT: 10.55.45.086 [WRITE] client_write(type=2, len=23) -> 0
CURLINFO_TEXT: 10.55.45.088 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 10.55.45.092 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 10.55.45.093 PBSZ 0
CURLINFO_TEXT: 10.55.45.094 [FTP] [PASS] -> [PBSZ]
CURLINFO_TEXT: 10.55.45.110 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.113 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.114 [TCP] recv(len=44) -> 44, err=0
CURLINFO_TEXT: 10.55.45.115 [SSL] ossl_bio_cf_in_read(len=44) -> 44, err=0
CURLINFO_TEXT: 10.55.45.116 [SSL] cf_recv(len=900) -> 20, 0
CURLINFO_HEADER_IN: 10.55.45.117 200 PBSZ set to 0.
CURLINFO_TEXT: 10.55.45.117 [WRITE] download_write header(type=2, blen=20) -> 0
CURLINFO_TEXT: 10.55.45.118 [WRITE] client_write(type=2, len=20) -> 0
CURLINFO_TEXT: 10.55.45.120 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 10.55.45.121 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 10.55.45.123 PROT P
CURLINFO_TEXT: 10.55.45.124 [FTP] [PBSZ] -> [PROT]
CURLINFO_TEXT: 10.55.45.142 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.145 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.146 [TCP] recv(len=47) -> 47, err=0
CURLINFO_TEXT: 10.55.45.147 [SSL] ossl_bio_cf_in_read(len=47) -> 47, err=0
CURLINFO_TEXT: 10.55.45.148 [SSL] cf_recv(len=900) -> 23, 0
CURLINFO_HEADER_IN: 10.55.45.149 200 PROT now Private.
CURLINFO_TEXT: 10.55.45.150 [WRITE] download_write header(type=2, blen=23) -> 0
CURLINFO_TEXT: 10.55.45.150 [WRITE] client_write(type=2, len=23) -> 0
CURLINFO_TEXT: 10.55.45.152 [TCP] send(len=34) -> 34, err=0
CURLINFO_TEXT: 10.55.45.153 [SSL] ossl_bio_cf_out_write(len=34) -> 34, err=0
CURLINFO_HEADER_OUT: 10.55.45.155 PWD
CURLINFO_TEXT: 10.55.45.157 [FTP] [PROT] -> [PWD]
CURLINFO_TEXT: 10.55.45.175 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.177 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.177 [TCP] recv(len=58) -> 58, err=0
CURLINFO_TEXT: 10.55.45.178 [SSL] ossl_bio_cf_in_read(len=58) -> 58, err=0
CURLINFO_TEXT: 10.55.45.179 [SSL] cf_recv(len=900) -> 34, 0
CURLINFO_HEADER_IN: 10.55.45.180 257 "/" is the current directory
CURLINFO_TEXT: 10.55.45.181 [WRITE] download_write header(type=2, blen=34) -> 0
CURLINFO_TEXT: 10.55.45.182 [WRITE] client_write(type=2, len=34) -> 0
CURLINFO_TEXT: 10.55.45.183 Entry path is '/'
CURLINFO_TEXT: 10.55.45.184 [FTP] [PWD] -> [STOP]
CURLINFO_TEXT: 10.55.45.185 [FTP] [STOP] protocol connect phase DONE
CURLINFO_TEXT: 10.55.45.186 [FTP] [STOP] DO phase starts
CURLINFO_TEXT: 10.55.45.187 [TCP] send(len=43) -> 43, err=0
CURLINFO_TEXT: 10.55.45.188 [SSL] ossl_bio_cf_out_write(len=43) -> 43, err=0
CURLINFO_HEADER_OUT: 10.55.45.189 CWD Renaming
CURLINFO_TEXT: 10.55.45.190 [FTP] [STOP] -> [CWD]
CURLINFO_TEXT: 10.55.45.191 [FTP] [CWD] perform, awaiting DATA connect
CURLINFO_TEXT: 10.55.45.210 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.211 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.212 [TCP] recv(len=61) -> 61, err=0
CURLINFO_TEXT: 10.55.45.213 [SSL] ossl_bio_cf_in_read(len=61) -> 61, err=0
CURLINFO_TEXT: 10.55.45.214 [SSL] cf_recv(len=900) -> 37, 0
CURLINFO_HEADER_IN: 10.55.45.215 250 Directory successfully changed.
CURLINFO_TEXT: 10.55.45.217 [WRITE] download_write header(type=2, blen=37) -> 0
CURLINFO_TEXT: 10.55.45.218 [WRITE] client_write(type=2, len=37) -> 0
CURLINFO_TEXT: 10.55.45.219 [TCP] send(len=35) -> 35, err=0
CURLINFO_TEXT: 10.55.45.220 [SSL] ossl_bio_cf_out_write(len=35) -> 35, err=0
CURLINFO_HEADER_OUT: 10.55.45.221 EPSV
CURLINFO_TEXT: 10.55.45.222 [FTP] [CWD] -> [PASV]
CURLINFO_TEXT: 10.55.45.223 Connect data stream passively
CURLINFO_TEXT: 10.55.45.243 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.245 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.245 [TCP] recv(len=72) -> 72, err=0
CURLINFO_TEXT: 10.55.45.246 [SSL] ossl_bio_cf_in_read(len=72) -> 72, err=0
CURLINFO_TEXT: 10.55.45.247 [SSL] cf_recv(len=900) -> 48, 0
CURLINFO_HEADER_IN: 10.55.45.248 229 Entering Extended Passive Mode (|||14929|)
CURLINFO_TEXT: 10.55.45.249 [WRITE] download_write header(type=2, blen=48) -> 0
CURLINFO_TEXT: 10.55.45.250 [WRITE] client_write(type=2, len=48) -> 0
CURLINFO_TEXT: 10.55.45.251 [SETUP-1] added
CURLINFO_TEXT: 10.55.45.252 Connecting to 11.22.33.44 (11.22.33.44) port 14929
CURLINFO_TEXT: 10.55.45.253 [FTP] [PASV] -> [STOP]
CURLINFO_TEXT: 10.55.45.254 [FTP] [STOP] DO phase is complete2
CURLINFO_TEXT: 10.55.45.255 [HAPPY-EYEBALLS-1] created ipv4 (timeout 299475ms)
CURLINFO_TEXT: 10.55.45.256 [HAPPY-EYEBALLS-1] ipv4 starting (timeout=299474ms)
CURLINFO_TEXT: 10.55.45.256   Trying 11.22.33.44:14929...
CURLINFO_TEXT: 10.55.45.257 [TCP-1] cf_socket_open() -> 0, fd=1808
CURLINFO_TEXT: 10.55.45.259 [TCP-1] local address 0.0.0.0 port 16538...
CURLINFO_TEXT: 10.55.45.260 [HAPPY-EYEBALLS-1] ipv4 connect -> 0, connected=0
CURLINFO_TEXT: 10.55.45.260 [FTP] [STOP] ftp_domore_getsock()
CURLINFO_TEXT: 10.55.45.261 [TCP-1] adjust_pollset, !connected, POLLOUT fd=1808
CURLINFO_TEXT: 10.55.45.262 [HAPPY-EYEBALLS-1] adjust_pollset -> 2 socks
CURLINFO_TEXT: 10.55.45.282 [TCP-1] connected
CURLINFO_TEXT: 10.55.45.284 [HAPPY-EYEBALLS-1] ipv4 connect -> 0, connected=1
CURLINFO_TEXT: 10.55.45.285 [HAPPY-EYEBALLS-1] Connected to ftp-server.com (11.22.33.44) port 14929
CURLINFO_TEXT: 10.55.45.287 [SSL-1] cf_connect()
CURLINFO_TEXT: 10.55.45.288 [SSLS] find peer slot for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G among 3 slots
CURLINFO_TEXT: 10.55.45.289 [SSLS] took session for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G [proto=0x303, alpn=(nil), earlydata=0, quic_tp=no], 0 sessions remain
CURLINFO_TEXT: 10.55.45.290 SSL reusing session
CURLINFO_TEXT: 10.55.45.292 [SSLS] find peer slot for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G among 3 slots
CURLINFO_TEXT: 10.55.45.293 [SSLS] added session for ftp-server.com:21:TLSVER-0-6:TLSOPT-10:IMPL-LibreSSL/4.0.0:G [proto=0x303, valid_secs=7199, alpn=(nil), earlydata=0, quic_tp=no], peer has 1 sessions now
CURLINFO_TEXT: 10.55.45.294 [TCP-1] send(len=241) -> 241, err=0
CURLINFO_TEXT: 10.55.45.295 [SSL-1] ossl_bio_cf_out_write(len=241) -> 241, err=0
CURLINFO_TEXT: 10.55.45.296 TLSv1.2 (OUT), TLS handshake, Client hello (1):
CURLINFO_SSL_DATA_OUT: 10.55.45.297 �CURLINFO_TEXT: 10.55.45.298 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.299 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.299 [SSL-1] ossl_populate_x509_store, path=none, blob=0
CURLINFO_TEXT: 10.55.45.306 successfully imported Windows ROOT store
CURLINFO_TEXT: 10.55.45.308 successfully imported Windows CA store
CURLINFO_TEXT: 10.55.45.310 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 10.55.45.311 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 10.55.45.312 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 10.55.45.313 [TCP] send(len=37) -> 37, err=0
CURLINFO_TEXT: 10.55.45.314 [SSL] ossl_bio_cf_out_write(len=37) -> 37, err=0
CURLINFO_HEADER_OUT: 10.55.45.315 TYPE A
CURLINFO_TEXT: 10.55.45.316 [FTP] [STOP] -> [LIST_TYPE]
CURLINFO_TEXT: 10.55.45.317 [FTP] [LIST_TYPE] ftp_domore_getsock()
CURLINFO_TEXT: 10.55.45.318 [SSL-1] adjust_pollset, POLLIN fd=1808
CURLINFO_TEXT: 10.55.45.319 [TCP-1] adjust_pollset, !active, POLLIN fd=1808
CURLINFO_TEXT: 10.55.45.335 [SSL-1] cf_connect()
CURLINFO_TEXT: 10.55.45.336 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.337 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.339 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 10.55.45.340 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 10.55.45.341 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 10.55.45.341 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.342 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.343 [TCP] recv(len=54) -> 54, err=0
CURLINFO_TEXT: 10.55.45.344 [SSL] ossl_bio_cf_in_read(len=54) -> 54, err=0
CURLINFO_TEXT: 10.55.45.345 [SSL] cf_recv(len=900) -> 30, 0
CURLINFO_HEADER_IN: 10.55.45.346 200 Switching to ASCII mode.
CURLINFO_TEXT: 10.55.45.347 [WRITE] download_write header(type=2, blen=30) -> 0
CURLINFO_TEXT: 10.55.45.348 [WRITE] client_write(type=2, len=30) -> 0
CURLINFO_TEXT: 10.55.45.349 [TCP] send(len=35) -> 35, err=0
CURLINFO_TEXT: 10.55.45.350 [SSL] ossl_bio_cf_out_write(len=35) -> 35, err=0
CURLINFO_HEADER_OUT: 10.55.45.351 MLSD
CURLINFO_TEXT: 10.55.45.352 [FTP] [LIST_TYPE] -> [LIST]
CURLINFO_TEXT: 10.55.45.352 [FTP] [LIST] ftp_domore_getsock()
CURLINFO_TEXT: 10.55.45.353 [SSL-1] adjust_pollset, POLLIN fd=1808
CURLINFO_TEXT: 10.55.45.354 [TCP-1] adjust_pollset, !active, POLLIN fd=1808
CURLINFO_TEXT: 10.55.45.373 [SSL-1] cf_connect()
CURLINFO_TEXT: 10.55.45.374 [TCP-1] recv(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.376 [SSL-1] ossl_bio_cf_in_read(len=5) -> -1, err=81
CURLINFO_TEXT: 10.55.45.377 [SSL-1] SSL_connect() -> err=-1, detail=2
CURLINFO_TEXT: 10.55.45.378 [SSL-1] SSL_connect() -> want recv
CURLINFO_TEXT: 10.55.45.379 [SSL-1] cf_connect() -> 0, done=0
CURLINFO_TEXT: 10.55.45.380 [TCP] recv(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.381 [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
CURLINFO_TEXT: 10.55.45.382 [TCP] recv(len=46) -> 46, err=0
CURLINFO_TEXT: 10.55.45.383 [SSL] ossl_bio_cf_in_read(len=46) -> 46, err=0
CURLINFO_TEXT: 10.55.45.384 [SSL] cf_recv(len=900) -> 22, 0
CURLINFO_HEADER_IN: 10.55.45.384 500 Unknown command.
CURLINFO_TEXT: 10.55.45.385 [WRITE] download_write header(type=2, blen=22) -> 0
CURLINFO_TEXT: 10.55.45.386 [WRITE] client_write(type=2, len=22) -> 0
CURLINFO_TEXT: 10.55.45.387 RETR response: 500
CURLINFO_TEXT: 10.55.45.388 Remembering we are in dir "Renaming/"
CURLINFO_TEXT: 10.55.45.389 [FTP] [LIST] done, result=0
CURLINFO_TEXT: 10.55.45.390 [WRITE] cw-out done
CURLINFO_TEXT: 10.55.45.390 [READ] client_reset, clear readers
CURLINFO_TEXT: 10.55.45.391 Connection #0 to host ftp-server.com left intact
[18] Perform completed with code FTP_COULDNT_RETR_FILE on curl handle 2531925010144
FTP_COULDNT_RETR_FILE when processing effective url 'ftp://ftp-server.com:21/Renaming/'
[19] Resetting curl handle 2531925010144
CURLINFO_TEXT: 10.55.57.230 [READ] client_reset, clear readers
FTP_COULDNT_RETR_FILE when processing effective url 'ftp://ftp-server.com:21/Renaming/'
[18] Scheduling perform on curl handle 2531925010144
[15] Running perform on curl handle 2531925010144
[15] Perform completed with code SSL_CACERT on curl handle 2531925010144

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants
0