Skip to content

Releases: FubarDevelopment/FtpServer

Hotfix to ensure that logging is optional

01 May 20:09
Compare
Choose a tag to compare
Logging is an optional component

Fixes #63

Restructuring and SSL factory fixes

27 Mar 17:49
Compare
Choose a tag to compare
Pre-release

SSL factory fixes (GnuTLS, #49)

Clients using GnuTLS should now work too - as soon as the FTP server is used in a .NET Core app (2.0 or higher). The example application shows how to register your own ISslStreamWrapperFactory, which (in the example application) uses a fixed version of the GnuSslStream.

Restructuring (BREAKING CHANGE)

We now have an IFtpResponse interface, which will allow us to use IAsyncEnumerable to return file lists from file systems with many files as soon as they're available (e.g. Google Drive).

Google Drive improvements and connection limits

12 Mar 14:24
Compare
Choose a tag to compare

Changed

  • PR #60: The Google Drive file system returns all entries of a directory (and not only 100)

Added

  • PR #58: Added MaxActiveConnections to Ftp Server options

Initial support for virtual hosts

28 Jan 11:07
Compare
Choose a tag to compare
Pre-release

New

  • Support for HOST and REIN commands
  • Support for ADAT command

Fixed

  • OPTS UTF8 can be used without login

Changed

  • IFtpConnection.Data.IsLoggedIn is obsolete (use the new IFtpLoginStateMachine.Status instead)
  • Server may now listen on port 0 (fixes #55)

Better RFC 2228 support

27 Jan 20:50
Compare
Choose a tag to compare
Pre-release

Summary

New

  • New IFtpLoginStateMachine interface and implementation
  • Localizable FTP server

Fixed

  • SYST returns now status code 215

Changed

  • AuthTlsOptions was moved to FubarDev.FtpServer package

Details

Better RFC 2228 support

This version supports better support as described in the RFC 2228 - FTP Security Extensions. This means that AUTH TLS is implemented as IAuthenticationMechanism and USER/PASS is implemented as IAuthorizationMechanism. This move will allow support for other commands like ACCT, ADAT, etc... and more authentication mechanisms like - for example - NTLM/Kerberos and others.

Localizable FTP server

A new interface IFtpCatalogLoader was introduces to allow loading of translations for the FTP status messages by utilizing the NGettext package. This automatically results in the support of the LANG command as specified in the RFC 2640 - Internationalization of the File Transfer Protocol.

Last big release before going all-in on ASP.NET Core

23 Jan 17:35
Compare
Choose a tag to compare

Upgrade guide: http://fubardevelopment.github.io/FtpServer/articles/upgrade-3.0.html

What's new?

  • In-memory file system
  • Passive data connection port range (contribution from 40three GmbH)
  • New IFtpServerHost interface
  • New IFtpService interface which allows easy integration into ASP.NET Core
  • New IAccountInformation interface
  • New IAnonymousFtpUser interface

What's changed?

  • Google drive upload without background uploader
  • BREAKING: The FTP commands are now registered as singletons to improve performance
  • BREAKING: Usage of ReadOnlySpan in the FTP command collector
  • BREAKING: IFileSystemClassFactory.Create takes an IAccountInformation
  • BREAKING: The IMembershipProvider is now asynchronous
  • BREAKING: FtpConnectionData.IsAnonymous is obsolete, the anonymous user is now of type IAnonymousFtpUser
  • The IFtpCommandHandler.GetExtensions() is now deprecated as all extensions that were previously returned here have their own implementation now

What's fixed?

  • AUTH TLS fails gracefully when no SSL certificate is configured
  • SITE BLST works again

A look into the future

The 4.x version will drop support for .NET Standard 1.3 and - eventually - .NET 4.6.1 as
the FTP Server will be reimplemented as ConnectionHandler which will result into the following
improvements:

  • Easy hosting in an ASP.NET Core application
  • Usage of pipelines when possible (AUTH TLS might cause problems)
  • Using the ASP.NET Core connection state management

Configurable passive port range

21 Jan 13:35
Compare
Choose a tag to compare

Partial fixes

  • Issue #44: AUTHTLS without configured TLS returns 502

Fixes

  • Issue #43: Special addresses for listening on all interfaces: * for both IPv6 and IPv4, :: for IPv6 only, 0.0.0.0 or empty address for IPv4 only
  • Issue #8: Port range can now be specified

Increase Telnet protocol compatibility and reduce CPU load

01 Aug 14:57
Compare
Choose a tag to compare

Fixes

Additional information

The problem with issue #32 is, that the client needs to send the 0xFF twice to escape it, because the FTP protocol uses Telnet strings and those escape sequences are part of the Telnet specification. The FTP server now recognices the 0xFF 0xFF character sequence and handles it properly.

Explicitly add Options service

03 Jul 09:36
Compare
Choose a tag to compare

Fixes

  • #29: Unable to resolve IOptions service

Transition to .NET Standard and Dependency Injection

06 Jun 18:58
Compare
Choose a tag to compare

This release contains the following changes:

  • Everything is instantiated using Dependency Injection (Microsoft.Extensions.DependencyInjection)
  • Standard logging (Microsoft.Extensions.Logging)
  • Finally a documentation (http://fubardevelopment.github.io/FtpServer/)
  • Support for .NET Standard 1.3/2.0 and .NET Framework 4.6.1
  • ... and several other things I probably forgot