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>

Reply via email to