LFTP Changelog

What's new in LFTP 4.9.1

Jan 16, 2020
  • get1: fixed creating the target directory.
  • get1: fixed renaming the temp file.
  • fixed a coredump on startup when IPv6 is not supported or configured.
  • fixed build with --disable-ipv6.
  • fixed build with Sun Studio.

New in LFTP 4.9.0 (Dec 27, 2019)

  • ftp: add support for CEPR command.
  • ftp: enabled TLS by default.
  • ftp: fixed OPTS MLST format.
  • ftps: apply rfc1738 rules.
  • ftp: stop sending ALLO commands by default.
  • http: fixed redirection to absolute path.
  • http: improved index parsing performance.
  • http: revert to original URL when temporary redirects led to an error.
  • mirror --no-empty-dirs: exclude empty dirs so that chmod is not done on them.
  • net: disable inet6 if there is no public ipv6 address.
  • net: lowered reconnect intervals.
  • sftp, fish: fixed yes/no/[fingerprint] and passphrase recognition.
  • sftp: fixed a bug with truncated files when packets are reordered.
  • torrent: fixed a coredump when all dht ports are busy.
  • fixed file list sorting when some file names start with tilde.
  • fixed retry counting when a site has multiple addresses.
  • fixed "version" command for certain openssl versions.

New in LFTP 4.8.4 (Aug 2, 2018)

  • fixed a security vulnerability with "file:" file names.
  • fixed mirror --flat.
  • http: extract links from tags.
  • fixed upload of zero-length files over ftps.
  • fixed assert on "mput -d".
  • fixed a core dump.
  • avoid multiple backup files of DHT cache.
  • translations updated (uk, zh_CN).

New in LFTP 4.8.3 (Apr 13, 2018)

  • fixed compilation with older C++ compilers.
  • fixed 2 other core dumps on exit (incorrect order of deallocation).

New in LFTP 4.8.1 (Sep 13, 2017)

  • improved rate limiting to allow per-host limits.
  • ftp: make prefer-epsv default "no".
  • ftp: fixed quote command and ftp:use-stat-for-list setting.
  • switched to libidn2.
  • fixed build with LibreSSL.
  • fixed configure --disable-rpath.
  • fixed coredump when a parent directory was deleted.

New in LFTP 4.8.0 (Jul 12, 2017)

  • mirror: improved performance of --scan-all-first for big trees.
  • mirror: new --flat option to flatten the target directory structure.
  • mmv: new command for file moving; redirect mv to mmv in certain cases.
  • fixed compilation with newer openssl (1.1.0 and later).
  • du: allow multiple --exclude options to be combined.
  • new setting cmd:nullglob for `glob' command prefix.
  • http: use proppatch to set last-modified property.
  • new settings net:connection-limit-timer and ftp:too-many-re.
  • ftp: dynamically ajust connection limit.
  • ftp: fixed core dump on LINK/SYMLINK when the command is not supported.
  • get1: fixed -o option.
  • sftp,fish: connect-program setting is now passed to the shell for execution.
  • get/mget/put/mput: add -P option for parallel transfers and long options.
  • appimage: new make target for making an AppImage file.
  • fixed "local glob".

New in LFTP 4.7.6 (Feb 21, 2017)

  • obsolete settings xfer:log, xfer:log-file, xfer:max-log-size are now aliased to log:enabled/xfer, log:file/xfer and log:max-size/xfer.
  • fixed a missing SFTP status message.
  • fixed a coredump when opening "slot:name" without a path in the slot.
  • fixed XDG directories description in the man page.
  • fixed off-by-one month error in apache file listing with ISO dates.
  • fixed compilation on some systems.
  • updated zh_TW translation.

New in LFTP 4.7.5 (Jan 3, 2017)

  • http: recognize apache listing with ISO date/time.
  • ipv6: ignore link-local address without a scope.
  • new settings log:prefix-{recv,send,note,error}.
  • documentation and help improvements.
  • mirror: fixed recursion mode initialization.
  • mirror: fixed assertion failure when creating remote symlinks.
  • mirror: show chmod errors when verbose.
  • fixed debug command to switch output to stderr if no output file given.
  • ftp: add "site mkdir" support for "mkdir -p".
  • ftp: fixed a long delay in "mode z" with ProFTPD.
  • ftp: fixed a failed assertion in "mode z".

New in LFTP 4.7.3 (Jul 21, 2016)

  • mirror: don't add source directory base name to the target if the source ends with a slash.
  • mirror: fixed transfer count tracking in --scan-all-first mode.
  • new setting file:use-fallocate.
  • fixed "kill all" to remove queued commands.
  • fixed xfer:log-file setting to a writable file in a protected directory.
  • fixed xfer:clobber to allow output to non-plain files.
  • fixed mirror --Move to really keep source dir if it ends with a slash.

New in LFTP 4.7.2 (May 19, 2016)

  • ftp: fixed loss of 17th file from MLSD listing.
  • new setting xfer:timeout.
  • ssl: improved ssl performance for small read sizes.
  • pget: allocate all needed disk space at once.
  • http: new settings http:use-range and hftp:use-range.
  • http: fixed setting http:authorization.
  • http: resolve redirections when getting files information.
  • http: include X-OC-MTime header in PUT requests for OwnCloud.
  • mirror: changed --Move option to keep source dir if it ends with a slash.
  • mirror: fixed timestamp mirroring when the source site sends redirections.
  • mirror: don't report errors when the target does not support chmod.
  • torrent: discard cached data after validating.
  • torrent: fixed a coredump on a file read error.
  • torrent: fixed closing oldest cached FD.
  • torrent/DHT: fixed our external IP voting.
  • torrent/DHT: black-list nodes which change node_id often.
  • torrent/DHT: black-list nodes which report many bad nodes.
  • torrent/DHT: ignore nodes with our own ID.
  • torrent/DHT: made node search more robust.
  • torrent/DHT: mark new nodes as questionable.
  • translations updated (zh_TW, ru).

New in LFTP 4.7.1 (Apr 4, 2016)

  • http: fixed authentication for proxy, transient errors, max-retries=1.
  • http: fixed put with authentication not to use HEAD request.
  • translations updated (cs, ru).

New in LFTP 4.7.0 (Mar 28, 2016)

  • ftp: add MODE Z support.
  • ftp: new settings ftp:use-mode-z, ftp:compressed-re, ftp:mode-z-level.
  • ftp: add MFF support for chmod.
  • ftp: prefer EPSV by default.
  • ftp: prefer CWD-relative paths.
  • ftp: enable MLSD by default (when supported).
  • ftp: assume AUTH is supported based on other newer features.
  • http: add support for digest authentication.
  • http: fixed webdav directory listing.
  • http: fixed a coredump when using a proxy for https.
  • sftp: fixed mirror to sftp with xfer:use-temp-file set.
  • ssl: optimized ssl for speed and lower syscall count.
  • ssl: log server's certificate fingerprint.
  • ssl: allow disabling certificate verification by its fingerprint.
  • get: rename backup file back if new file cannot be retrieved.
  • get: new settings xfer:backup-suffix and xfer:keep-backup.
  • get/put/mget/mput/pget/get1: add -q (quiet) option.
  • edit: allow creating a new file.
  • new debug option -T (truncate output file).
  • new mirror options: --{in,ex}clude-{rx,glob}-from.
  • new mirror options: --Remove-source-dirs, --Move.

New in LFTP 4.6.5 (Dec 11, 2015)

  • sftp: fixed handling of out-of-order replies.
  • fixed futex_wait issue in SIGCHLD handler.
  • ftp: fixed ls freezing with unstable server connection.
  • torrent: show more correct ETA on the status line.
  • fixed gnutls priority string.
  • mirror: fixed excessive stack usage on large directories.
  • documented some hard to fix bugs.
  • improved man page on open command and cmd:prompt setting.
  • translations updated (zh_TW).

New in LFTP 4.6.4 (Aug 20, 2015)

  • mirror: new option --transfer-all.
  • torrent: new setting torrent:timeout to limit time without any progress.
  • torrent: fixed handling of udp tracker without explicit port number.
  • torrent: improved transfer start time after metadata download.
  • improved sftp put -c to use a single FSETSTAT.
  • mirror --skip-noaccess now uses user name to check for permissions.
  • don't rename temporary file to the target name when transfer fails.
  • new cmd:prompt escapes \l and \L for local working directory.
  • translations updated (pl, ru, uk).
  • new configure option --disable-ipv6.
  • fixed compilation with an old gcc.

New in LFTP 4.6.3a (Jun 18, 2015)

  • new mirror setting mirror:overwrite and options --overwrite/--no-overwrite.
  • new mirror option --upload-older.
  • new mirror option --recursion={always,never,missing,newer}.
  • try to download zero sized files as they may be non-empty.
  • torrent: new options --only-new, --only-incomplete.
  • torrent: fixed endless loop in FD deallocation.
  • fixed a memleak when parsing a directory listing with special files.
  • fixed one byte buffer overflow in cls.
  • fixed cmd:fail-exit description in the man page.
  • fixed large stack usage when parsing fish directory listings.

New in LFTP 4.6.2 (Apr 17, 2015)

  • new command "edit" instead of the edit alias.
  • new setting ssl:priority for disabling selected protocols.
  • new settings fish:auto-confirm and sftp:auto-confirm.
  • new setting file:use-lock to lock local files before accessing.
  • ftp: fixed disconnecting on timeout (broken in 4.6.0).
  • http: enclose ipv6 address in brackets in URLs and Host header.
  • fixed mirror for http protocol with redirections.
  • fixed `bookmark edit' to use correct XDG path if XDG is used.
  • fixed a wildcard certificate validation vulnerability (CVE-2014-0139).
  • fixed proxy authentication for CONNECT method.
  • fixed exit code of `help' command.
  • fixed sftp to show file names with slashes.
  • fixed pget status display when all chunks are done except the first one.
  • Ukrainian translation updated (Yuri Chornoivan).
  • Russian translation updated.

New in LFTP 4.6.1 (Dec 30, 2014)

  • new mirror option --scan-all-first.
  • mirror --Remove-source-files now removes files already present at the target.
  • added a workaround for FUSE with HadoopFS I/O error during rename(2).
  • fixed du to round file size up to block size.
  • fixed compilation with libressl.
  • fixed OPTS MLST, removed trailing semicolon.
  • fixed put to sftp with special files (like /dev/stdin).
  • fixed ftp to copy SID properly with GnuTLS (Tim Kosse).
  • fixed mirror to follow redirections to files (Tomas Hozza).

New in LFTP 4.6.0 (Oct 13, 2014)

  • new torrent --share option.
  • new setting mirror:require-source.
  • new settings xfer:use-temp-file and xfer:temp-file-name.
  • ftp: wait for QUIT reply before closing control socket.

New in LFTP 4.5.5 (Sep 4, 2014)

  • added support for internationalized domain names.
  • added lftp --norc option.
  • added mirror "Finished" message.
  • added ftp:catch-size setting.
  • fixed net:max-retries setting.
  • fixed byte counters in mirror status.
  • fixed a segfault in ftps.
  • fixed a spurious error message in fxp and ftp.

New in LFTP 4.5.4 (Aug 9, 2014)

  • new setting mirror:sort-by (name, size, date).
  • torrent: reduced cpu and memory usage.
  • fixed occasional "BUG:deadlock" message.
  • fixed a segfault when a directory contains duplicate file names.
  • fixed a memory leak in torrent.
  • fixed byte counters in mirror --depth-first.
  • fixed timeout checks in FISH.
  • translations updated (pl).

New in LFTP 4.4.15 (Jan 24, 2014)

  • new setting pget:min-chunk-size.
  • improved DHT search by preferring responded nodes.
  • allow UTC timezone in http timestamps.
  • fixed WebDAV rmdir operation.
  • fixed torrent hang on shutdown when a tracker is unresposive.
  • fixed adding too may slashes to URLs in http.

New in LFTP 4.4.14 (Dec 13, 2013)

  • Fixed HEAD/PROPFIND handling in http.
  • A minor memory leak fixed.

New in LFTP 4.4.13 (Nov 30, 2013)

  • Fixed a bug in file size checking code.

New in LFTP 4.4.11 (Nov 13, 2013)

  • Fixed a slow down in mirror from http (thanks to OGAWA Hirofumi).
  • Fixed a coredump in sftp when accessing an inexistent file.

New in LFTP 4.4.10 (Oct 15, 2013)

  • mirror new option --file/-f to mirror a single file.
  • mirror new option -O for get/put similarity.
  • WebDAV fixes and improvements.
  • new setting ftp:use-utf8 to disable utf-8 activation.
  • fixed handling of incorrect encoding of file names.
  • fixed compilation without libiconv.
  • fixed occasional hang in mirror.
  • kill ssh when terminating fish or sftp connection.

New in LFTP 4.4.9 (Aug 24, 2013)

  • implemented support for mirror -L in sftp.
  • pass all 3 std file descriptors when attaching to lftp instance.
  • ftp: added a workaround for incorrectly formatted multiline replies.
  • sftp: added a workaround for RouterOS v6.
  • fixed mirror --no-empty-dirs to skip directories with no included files.
  • fixed segfault when there is no TERM environment variable.
  • fixed torrent for meta-info files with % in their names.
  • fixed compilation when IPV6_V6ONLY if not defined.
  • fixed compilation with older zlib.
  • fixed FD_CLOEXEC flag on cwd and transfer_log.
  • fixed MLSD parsing for semicolons in file names.
  • new translation: Ukrainian (thanks to Yuri Chornoivan).
  • man page updated.

New in LFTP 4.4.5 (Mar 14, 2013)

  • User/group name lookup performance fixed.

New in LFTP 4.4.4 (Feb 27, 2013)

  • added support for TLS SNI extension.
  • added UDP tracker support.
  • added cls -a option to show dot files.
  • new setting cmd:show-status.

New in LFTP 4.4.0 (Sep 28, 2012)

  • implemented bittorrent extensions (FAST, DHT, LTEP, ut_metadata, ut_pex).
  • allow torrent downloading by magnet links.
  • new setting torrent:use-dht.
  • new torrent option --dht-bootstrap for manual bootstrapping.
  • add support for name.utf-8 and path.utf-8 in torrent metadata.
  • now net:limit-rate and net:limit-total-rate settings can use suffixes, e.g. `set net:limit-total-rate 1M:500k'.
  • allow numeric user names.
  • don't try to upload if ALLO fails.
  • send PROT to ftp servers always when AUTH is activated.
  • fixed gnutls non-fatal error checking.
  • fixed execution of at-finish and at-queue-finish in certain cases.
  • fixed termcap coredump.
  • fixed opie on 64-bit machines.

New in LFTP 4.1.1 (Nov 26, 2010)

  • A bug with job command line display was fixed.

New in LFTP 4.1.0 (Nov 23, 2010)

  • send path components to ftp server separately, unless TVFS is in FEAT reply.
  • save pget status at the very beginning of pget execution.
  • allow mirror pget continuation (mirror -c --use-pget).
  • allow multiple torrent startup at once (e.g. torrent *.torrent).
  • pre-allocate disk space in torrent, if posix_fallocate(3) is supported.
  • new command prefix `local'. It makes the following command use local session instead of remote.
  • added torrent multi-tracker support.
  • fixed convert-mozilla-cookies cookie duplication.

New in LFTP 4.0.9 (Jun 16, 2010)

  • Some bugs fixed.

New in LFTP 3.7.12 (Apr 28, 2009)

  • fixed core dump on `mput -d' command.
  • fixed a core dump on `kill' command.
  • fixed mkdir -p for sftp protocol.
  • fixed some signed/unsigned conversion bugs.