Hello - I am running into an odd sort of problem using TLS with lftp.
When I upload a file, lftp pauses for 2 minutes after the upload has completed, at the end of which the FTP server responds "452 Put failed : SSL/TLS error." and the file is listed as a zero-byte file on the server. BUT! if I interrupt the waiting period (ctrl-c, which issues an 'ABOR') the FTP server responds "226 Transfer complete" and the file shows up with the proper size and content. (detailed output provided below) This issue does -not- occur when I perform a non-TLS upload. I am using: LFTP | Version 3.3.4 | Copyright (c) 1996-2005 Alexander V. Lukyanov Libraries used: Readline 4.3, Expat 1.95.7, OpenSSL 0.9.7a Feb 19 2003 on Linux running a 2.6.9 kernal, CentOS 4.x I searched the lftp archives. This issue sounded like http://www.mail-archive.com/lftp%40uniyar.ac.ru/msg02368.html ... and my initial build might have used the GNU TLS libs, so I recompiled starting with "./configure --without-gnutls --with-openssl" but the new build had the same behavior. This issues also sounded like: http://www.mail-archive.com/[email protected]/msg02288.html ... but I am using v3.3.4, which I assume incorporates changes made for v3.3.1rc1. My questions are: (1) Has anyone else seen this kind of problem (lftp waits at the end of a put via TLS, and the server ends up thinking the transfer was incomplete)? (2) What is lftp waiting for during that 2-minute interval at the end of the put? (My guess is that it is waiting for the success/fail response from the server.) (3) Is that 2-minute interval configurable, and would changing it to zero work as a work-around? (4) If there is no other way to deal with this, is there a way for me to cause lftp to send an ABOR right after the put has reached 100%, since that seems to force the transfer to complete in the expected way? Any insight or information would be welcome. Thanks. - Andrew NON-working situation: lftp XXXXXXXX:~/dir> put file -o remote-file ---> TYPE I <--- 200 Type set to I. ---> PASV <--- 227 Entering Passive Mode (XXXXXXXXXXXXXXXXXX) ---- Connecting data socket to (XXXXXXXXXXXXX) port 21001 ---- Data connection established ---> STOR remote-file <--- 150 Opening BINARY mode data connection for remote-file. Certificate depth: 0; subject: ... WARNING: Certificate verification: unable to get local issuer certificate WARNING: Certificate verification: certificate not trusted WARNING: Certificate verification: unable to verify the first certificate `file' at 6 (100%) [Sending data/TLS] (pause for 2 minutes ...) <--- 452 Put failed : SSL/TLS error. ---- Closing data socket 6 bytes transferred in 124 seconds lftp XXXXXXXX:~/dir> WORKING situation: lftp XXXXXXXX:~/dir> put file -o remote-file ---> TYPE I <--- 200 Type set to I. ---> PASV <--- 227 Entering Passive Mode (XXXXXXXXXXXXXXXXXXX) ---- Connecting data socket to (XXXXXXXXXXXXX) port 21002 ---- Data connection established ---> STOR remote-file <--- 150 Opening BINARY mode data connection for remote-file. Certificate depth: 0; subject: ... WARNING: Certificate verification: unable to get local issuer certificate WARNING: Certificate verification: certificate not trusted WARNING: Certificate verification: unable to verify the first certificate `file' at 6 (100%) [Sending data/TLS] (press CTRL-C ...) Interrupt ---> ABOR ---- Closing aborted data socket <--- 226- Transfer complete - acknowledgment message is pending. <--- 226- Transfer complete - acknowledgment message is pending. <--- 226 Transfer complete. <--- 225 ABOR command successful. lftp XXXXXXXX:~/dir>
