tag: libunftp-0.20.3
- #528 Fix to enable socket reuse that caused 425 errors in passive mode
tag: libunftp-0.20.2
- Upgraded dependencies
- Compiled against libunftp v0.20.2
- Upgraded dependencies
- 520 Allow https for auth rest url
- Compiled against libunftp v0.20.2
- Upgraded dependencies
- Compiled against libunftp v0.20.2
- Upgraded dependencies
- Fixed a build issue on Windows
- Upgraded dependencies
- Fixed examples on FreeBSD
- Compiled against libunftp v0.20.0
- Upgraded dependencies
- Compiled against libunftp v0.20.0
- Fixed the format of the LIST command
- Upgraded dependencies
- Compiled against libunftp v0.20.0
- Fix listing when root path is set (#509)
- Upgraded dependencies
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 theServer
.
tag: libunftp-0.19.1
- Upgraded dependencies
- #492 Added source IP parameter support
- compiled against libunftp v0.19.1
- compiled against libunftp v0.19.1
- compiled against libunftp v0.19.1
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
- #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
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
tag: libunftp-0.18.8
- Upgraded dependencies
- #384 Implemented caching of the access token for GCS
- Upgraded dependencies
- compiled against libunftp v0.18.8
- Upgraded dependencies
- compiled against libunftp v0.18.8
- #441 JsonFile authenticator: support gzipped and base64-encoded file
- #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
- #429 Await proxy protocol header in a separate task, fixes issue #208
- #428 Support Elliptic Curve Private Keys
- Upgraded dependencies
tag: unftp-auth-jsonfile-0.2.1
- #416 GCS support for
RMD
. PlusCWD
now checks target directory existence - #415 Support directory timestamps in GCS. To resolve issues with some UI FTP clients, such as Cyberduck
- compiled unftp-auth-pam against libunftp v0.18.5
- compiled unftp-auth-rest against libunftp v0.18.5
- compiled unftp-sbe-fs against libunftp v0.18.5
- compiled unftp-sbe-gcs against libunftp v0.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
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
andftp_error_total
counters now have new labelsevent
andevent_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
tag: libunftp-0.18.3
- #394 Implemented a new API (
Server.notify_data
andServer.notify_presence
) to allow listening for file events. - Upgraded dependencies
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
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.
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 aCredentials
structure reference instead of astr
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.
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.
- compiled unftp-auth-pam against libunftp v0.18.0
- compiled unftp-auth-rest against libunftp v0.18.0
- compiled unftp-sbe-fs against libunftp v0.18.0
- compiled unftp-sbe-gcs against libunftp v0.18.0
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.
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.
tag: libunftp-0.17.3
- Added Mutual TLS support.
tag: unftp-auth-jsonfile-0.1.1
- Added support for PBKDF2 encoded passwords
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.
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.
- Released unftp-sbe-gcs
- Released unftp-sbe-fs
- Released unftp-auth-jsonfile
- Released unftp-auth-pam
- Released unftp-auth-rest
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 theServerExt
extension trait ofunftp-sbe-fs
- The
Server::with_fs_and_auth
method was removed. Use theServer::with_authenticator
method instead.
Other changes:
- Upgraded outdated dependencies