Skip to content

Latest commit

 

History

History
343 lines (238 loc) · 13.3 KB

CHANGELOG.md

File metadata and controls

343 lines (238 loc) · 13.3 KB

Changelog

libunftp 0.20.1

  • Fixed a build issue on Windows
  • Upgraded dependencies
  • Fixed examples on FreeBSD

unftp-auth-jsonfile v0.3.4, unftp-auth-pam v0.2.5, unftp-auth-rest v0.2.5

  • Compiled against libunftp v0.20.0
  • Upgraded dependencies

unftp-sbe-fs v0.2.5

  • Compiled against libunftp v0.20.0
  • Fixed the format of the LIST command
  • Upgraded dependencies

unftp-sbe-gcs v0.2.6

  • Compiled against libunftp v0.20.0
  • Fix listing when root path is set (#509)
  • Upgraded dependencies

libunftp 0.20.0

tag: libunftp-0.10.0

  • Compile against Rust 1.78.0
  • Added support for Capsicum on FreeBSD (#481)
  • Fixed proxy protocol issue #494 when removing stale data channel
  • Upgraded dependencies
  • Code cleanup and documentation improvements
  • BREAKING: Introduced a new ServerBuilder struct to build the Server.

libunftp 0.19.1

tag: libunftp-0.19.1

  • Upgraded dependencies

unftp-auth-rest v0.2.4

  • #492 Added source IP parameter support
  • compiled against libunftp v0.19.1

unftp-auth-jsonfile v0.3.3, unftp-auth-pam v0.2.4

  • compiled against libunftp v0.19.1

unftp-sbe-fs v0.2.4, unftp-auth-pam v0.2.5

  • compiled against libunftp v0.19.1

libunftp 0.19.0

tag: libunftp-0.19.0

  • #471 Added unFTP documentation link to help command output
  • Include libunftp version in help command output
  • #470 Fixed issue with modified datetime formatting for Fileinfo where old dates didn't render correctly.
  • #482 Fixed RUSTSEC-2023-0052
  • Compile against Rust 1.72.0
  • BREAKING: Upgrade to latest bitflags dependency. Bitflags are exposed in the API for the TlsFlags option.
  • Improved tests
  • Upgraded dependencies

unftp-sbe-gcs v0.2.3

  • #449 GCS Backend has had a cleanup (deduplication, modularization)
  • #461 Better GCS error mapping to FTP and convey the causing
  • #465 Handle paginated results for LIST fixing issue #464
  • #466 Fixed an (unreleased) issue regarding root directory affecting list and cwd
  • #467 Added more verbose error details for HTTP responses with error body
  • #478 Fixed CWD on / error when the directory was empty

libunftp 0.18.9

tag: libunftp-0.18.9

  • #461 Cleaned INFO log output
  • #461 New metrics (ftp_transferred_total, ftp_sent_bytes, ftp_received_bytes)
  • #461 Useful new log messages such as data command summary with transfer speed
  • #461 Fixed bug where REST command didn't work correctly
  • #461 Various other bug fixes (RETR reply on missing data connection, mapping to correct ftp errors)
  • #458, 66756f1 Added partial support for FTP Active Mode. See Server::active_passive_mode
  • #453 Added support for the BYE command
  • Upgraded dependencies and Rust version

2023-01-25 Release of all crates

libunftp 0.18.8

tag: libunftp-0.18.8

  • Upgraded dependencies

unftp-sbe-gcs v0.2.2

  • #384 Implemented caching of the access token for GCS
  • Upgraded dependencies
  • compiled against libunftp v0.18.8

unftp-auth-jsonfile v0.3.1, unftp-auth-{rest,pam} v0.2.2

  • Upgraded dependencies
  • compiled against libunftp v0.18.8

2022-12-07 unftp-auth-jsonfile v0.3.0

  • #441 JsonFile authenticator: support gzipped and base64-encoded file

2022-10-26 libunftp 0.18.7

  • #430 Fix issue with proxy protocol hash construction
  • #432 Show Trace ID as hex in debug output
  • #434 Time out if client doesn't connect on data port after PASV
  • Upgraded dependencies

2022-09-25 libunftp 0.18.6

  • #429 Await proxy protocol header in a separate task, fixes issue #208
  • #428 Support Elliptic Curve Private Keys
  • Upgraded dependencies

2022-06-25 Release of all crates

unftp-auth-gcs v0.2.1

tag: unftp-auth-jsonfile-0.2.1

  • #416 GCS support for RMD. Plus CWD now checks target directory existence
  • #415 Support directory timestamps in GCS. To resolve issues with some UI FTP clients, such as Cyberduck

unftp-auth-* v0.2.1

  • compiled unftp-auth-pam against libunftp v0.18.5
  • compiled unftp-auth-rest against libunftp v0.18.5

unftp-sbe-* v0.2.1

  • compiled unftp-sbe-fs against libunftp v0.18.5
  • compiled unftp-sbe-gcs against libunftp v0.18.5

2022-06-24 libunftp 0.18.5

tag: libunftp-0.18.5

  • #414 Fixed path display issues for Windows clients.
  • #413 Fixed issue where the OPTS UTF8 command was not handled correctly as seen with the FTP client included in Windows Explorer.
  • Upgraded dependencies

2022-01-21 libunftp 0.18.4

tag: libunftp-0.18.4

  • #343, anti - brute force password guessing feature, choose from different failed login attempts policies: deters successive failed login attempts based on IP, username or the combination of both
  • #403, #404 Improved logging: The username and file path are logged in separate fields in more places.
  • #405 Improved metrics: The ftp_reply_total and ftp_error_total counters now have new labels event and event_type to allow correlation with the event for which a reply is given or for which an error occurred.
  • #402 Allow OPTS UTF8 .. without needing to authenticate.
  • Upgraded dependencies

2022-01-21 libunftp 0.18.3

tag: libunftp-0.18.3

  • #394 Implemented a new API (Server.notify_data and Server.notify_presence) to allow listening for file events.
  • Upgraded dependencies

2021-09-25 libunftp 0.18.2

tag: libunftp-0.18.2

  • #386 Implemented graceful shutdown through the Server.shutdown_indicator method.
  • Upgraded to rustls v0.20.0
  • Upgraded other minor dependency versions
  • Testing improvements

2021-09-25 libunftp 0.18.1

tag: libunftp-0.18.1

  • Replace futures with futures-util and use Tokio's mpsc channels
  • #371, #377 Fixed an issue where rclone reported all file sizes as 0. The fix was to include the number of links to a file in the output to the client.
  • Fixed a unit tests
  • Upgraded dependencies
  • #379 Fixed an issue where the Permissions struct could not be used even though it was public.
  • #380, #381 Return STAT response as a multi-line in accordance with RFC 959 in order to fix an issue with the Cyberduck client.

2021-07-13 Release of all crates

libunftp 0.18.0

tag: libunftp-0.18.0

  • #356 Authenticators can now also take the connection source IP, and the client certificate chain into account in addition to the password when performing authentication.
  • #356 Breaking: The Authenticator::authenticate method now takes a Credentials structure reference instead of a str reference for the second parameter.
  • #373 Breaking: The StorageBackend methods were all changed to take a reference of a user (&User) instead of an optional reference to it (&Option<User>).
  • Dependency upgrades and cleanups
  • Fixed an issue where OPTS UTF8 returned the wrong FTP reply code
  • #361 Don't allow consecutive PASS commands
  • Added support for TLS client certificates
  • #358 Added the ability for authenticators to do password-less authentication when the user presents a valid client certificate. See the Authenticator.cert_auth_sufficient method.

unftp-auth-jsonfile v0.2.0

tag: unftp-auth-jsonfile-0.2.0

  • Added support for per-user IP allow lists
  • #369 Added support for per-user client certificate CN matching
  • #355 Created a new Docker image that generates PBKDF2 keys for the authenticator.

unftp-auth-* v0.2.0

  • compiled unftp-auth-pam against libunftp v0.18.0
  • compiled unftp-auth-rest against libunftp v0.18.0

unftp-sbe-* v0.2.0

  • compiled unftp-sbe-fs against libunftp v0.18.0
  • compiled unftp-sbe-gcs against libunftp v0.18.0

2021-05-22 unftp-sbe-gcs v0.1.1

tag: unftp-sbe-gcs-0.1.1

  • Added an extension trait that adds a Server::with_gcs constructor.
  • Added support for the SITE MD5 FTP command. Also see Server::sitemd5 in libunftp.

2021-05-22 libunftp 0.17.4

tag: libunftp-0.17.4

  • Added a new SITE MD5 command that allows FTP clients to obtain the MD5 checksum of a remote file. The feature is disabled for anonymous users by default. See Server::sitemd5.

2021-05-02 libunftp v0.17.3

tag: libunftp-0.17.3

  • Added Mutual TLS support.

2021-05-01 unftp-auth-jsonfile v0.1.1

tag: unftp-auth-jsonfile-0.1.1

  • Added support for PBKDF2 encoded passwords

2021-04-25 libunftp v0.17.2

tag: libunftp-0.17.2

  • Fixed output formatting of the FEAT command.
  • Fixed the SIZE command that wrongly took the REST restart position into account and also caused number overflows because of that.
  • Removed panics that could happen when failing to load the TLS certificate or key, these errors are now propagated via the Server::listen method.
  • Implemented TLS session resumption with server side session IDs.
  • Implemented TLS session resumption with tickets.
  • Added the Server::ftps_tls_flags method to allow switching TLS features on or off.

2021-04-18 libunftp v0.17.1

tag: libunftp-0.17.1

Changes in this release:

  • #327 Allow PROT and PBSZ without requiring authentication.
  • #330 Load TLS certificates only once at startup instead of on every connect.

2021-03-26 Newly splitted auth and storage back-ends

2021-03-26 libunftp v0.17.0

tag: libunftp-0.17.0

The main focus of this release was the removal of contained authentication and storage back-ends from the libunftp crate and into their own crates. As you can imagine this brings about breaking changes.

Source code for these crates can still be found in this repository under the crates directory.

Breaking Changes:

  • Split the GCS back-end into crate unftp-sbe-gcs
  • Split the Filesystem back-end into crate unftp-sbe-fs
  • Split the JSON file authenticator into crate unftp-auth-jsonfile
  • Split the PAM authenticator into crate unftp-auth-pam
  • Split the REST authenticator into crate unftp-auth-rest
  • Changed some public API names to adhere to Rust naming conventions:
    • PAMAuthenticator became PamAuthenticator
    • PassiveHost::IP became PassiveHost::Ip
    • PassiveHost::DNS became PassiveHost::Dns
    • RestError::HTTPStatusError became RestError::HttpStatusError
    • RestError::JSONDeserializationError became RestError::JsonDeserializationError
    • RestError::JSONSerializationError became RestError::JsonSerializationError
  • The Server::with_fs method moved into the ServerExt extension trait of unftp-sbe-fs
  • The Server::with_fs_and_auth method was removed. Use the Server::with_authenticator method instead.

Other changes:

  • Upgraded outdated dependencies