Skip to content

libunftp 0.23.1

Choose a tag to compare

@hannesdejager hannesdejager released this 26 Sep 14:59

libunftp 0.23.1

This release adds application-defined FTP SITE subcommands and fixes control-channel reply handling and pooled listener address handling.

New functionality

#571: Register custom subcommands with ServerBuilder::site_command and implement libunftp::options::SiteCommandHandler. Handlers receive arguments, authenticated user details, the storage backend, and the session logger through SiteCommandContext, and return a Reply.

#576: Subcommand names are case-insensitive. Invalid or duplicate registrations and attempts to override built-in SITE MD5 are rejected by build(). When using user_detail_provider, call it before registering SITE handlers.

Fixes and maintenance

  • #573: Prevent a panic on blank lines in multiline FTP replies.
  • #568: Use the accepted control connection's local address in pooled listener mode, including wildcard bindings.
  • Update dependencies, including #567 and #574, and improve tests and documentation (#571).

Compatibility notes

The unftp-core API is unchanged and remains at 0.1.0. Unknown SITE subcommands now return 502 instead of 500.

Consumers pinning async-trait below 0.1.92 must update that pin to resolve dependencies. The unFTP smoke test used an updated pin and the filesystem backend with anonymous authentication.

Full changes: libunftp-0.23.0...libunftp-0.23.1