Commit Graph
7 Commits
Author SHA1 Message Date
Nick Craig-Wood a4e9650823 Fix STOR of zero length files to ProFTPd with TLS
Before this change, uploading a zero length file via TLS meant that
the tls.Handshake function was never called.

ProFTPd quite properly refuses to accept an empty TCP connection with
no TLS handshake as a zero length upload and gives the error

    425 Unable to build data connection: Operation not

See: https://forum.rclone.org/t/rclone-ftps-explicit-rclone-touch-empty-files-proftpd-unable-to-build-data-connection-operation-not-permitted/22522
2021-03-01 16:01:20 +00:00
Nick Craig-Wood 624bcac8b4 Add a DialWithDisabledMLSD option to ignore MLSD if advertised
This is useful for servers which advertise MLSD (eg some versions of
Serv-U) but don't support it properly.
2020-11-05 11:42:34 +00:00
Nick Craig-Wood fcad893ae7 Implement PRET command for distributed ftp servers, eg drftpd
See: https://tools.ietf.org/html/draft-dd-pret-00

Fixes #197
2020-10-19 17:59:40 +01:00
Nick Craig-Wood 9f5200151c Delay FEAT command until after Login - fixes #200
Some servers require the user to be logged in to run FEAT

    ftp://serverftp:2121: Connecting to FTP server
    FTP Rx: "220 DrFTPD+ 2.0 (+STABLE+) $Revision: 1949 $ http://drftpd.org"
    FTP Tx: "AUTH TLS"
    FTP Rx: "234 AUTH TLS successful"
    FTP Tx: "FEAT"
    FTP Rx: "530 Not logged in."
2020-09-12 11:30:42 +01:00
Nick Craig-Wood c0343a706b Fix Stor() no longer reporting errors from the io.Reader passed in
This commit

4a68979b89 always return the ReadResponse error after an upload

Broke the error return from Stor().  If you attempt to upload a file
with Stor() and the io.Reader that you passed in returns an error,
this was not returned by the Stor() command leading the user to think
the file was uploaded correctly.

This was detected by rclone's unit tests and the exact commit was
pinpointed with git commit.

This commit fixes it by returning the error from io.Copy or the error
from ReadResponse - the latter if they are both set.

Fixes #198
2020-09-11 17:14:05 +01:00
Nick Craig-Wood 6563ce9dff Workaround pure-ftpd connections failing with "Unknown command"
pure-ftpd 1.0.49-4 as supplied as part of Ubuntu 20.04 advertises UTF8
support in the FEAT command but the OPTS command fails to turn it on.

    OPTS UTF8 ON
    504 Unknown command

This patch introduces a workaround to ignore the error which enables
this library to work with this version of pure-ftpd. Filezilla appears
to ignore this error in a similar way.
2020-07-18 14:21:12 +01:00
Nick Craig-Wood 8aeb589fce Parse IP address returned with PASV to fix load balanced FTP servers
Fixes #114
2018-02-04 16:02:56 +00:00