Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency fluentftp to v50 #179

Merged
merged 1 commit into from
Jul 3, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 3, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
FluentFTP 37.1.2 -> 50.1.0 age adoption passing confidence

Release Notes

robinrodricks/FluentFTP (FluentFTP)

v50.1.0

  • File Upload
    • New: FtpRemoteExists.OverwriteInPlace mode which overwrites files without deleting them first
  • Connection
    • New: FtpConfig.PostConnect to enable the init sequence performed immediately after connection
    • Fix: Undetected connect timeout in .NET 5+
    • Fix: Remove BufferedStream feature and further refactoring of Dispose logic
    • Fix: Use correct SSL stream AuthenticateAsClient API rather than outdated API
    • Fix: Mask the FTP server host IP in PASV response when Config.LogHost is set to false
  • File Transfer
    • Fix DateTimes.ParseFtpDate will consider provided formats when parsing date/time values
  • File Listing
    • Improve: Improved performance for Regex parsing by utilizing Regex caching
    • Improve: Improved performance for Stream Read/Write API for .NET Standard 2.1 and newer

v50.0.1

  • Fix: Correct sequencing of FTP stream disposing for .NET Framework
  • Fix: Extraneous GetReply call in UploadInternal/DownloadInternal

v50.0.0

  • File Verification (thanks DasRaschloch and FanDjango)
    • New: All file transfer methods now support size/checksum/date comparison
    • New: DownloadDirectory, DownloadFile, DownloadFiles, support new size/checksum/date comparison
    • New: UploadDirectory, UploadFile, UploadFiles support new size/checksum/date comparison
    • New: FXP TransferDirectory, TransferFile support new size/checksum/date comparison
    • New: FtpVerify has new options: Size/Date/Checksum/OnlyChecksum
  • File Transfer (thanks FanDjango)
    • Fix: DownloadFile with Progress throws FtpException
    • Fix: Correctly handle internal errors in UploadInternal/DownloadInternal
    • Fix: GetFileSize provides invalid file length and transfer fails
  • FTP Proxy (thanks zhaohuiyingxue)
    • Fix: GetListing does not use the proxy with passive FTP
  • FTP Disconnection (thanks FanDjango)
    • New: Indicate creating/disposing sync/async connections in log
    • Fix: Disconnection during Connect async needs to be awaited
    • Fix: FTP BaseClient is also IAsyncDisposable in addition to IDisposable
    • Fix: Disposing a connected AsyncFtpClient throws non-fatal InvalidCastException
    • Fix: Cloning a AsyncFtpClient throws non-fatal InvalidCastException
    • Change: AsyncFtpClient to change all Close usage to await CloseAsync
    • Change: FtpDataStream now supports an async close method
    • Change: Use DisposeAsync pattern for AsyncFtpClient
    • Change: Call Dispose/DisposeAsync on BufferedStream instead of Flush/FlushAsync
    • Fix: Restore call to FtpSslStream for graceful TLS termination
  • IBM OS/400 (thanks FanDjango)
    • Fix: Async server-specific post-connection commands was missing for OS400

v49.0.2

  • NOOP Daemon (thanks FanDjango)
    • Fix: Improve NOOP daemon logic
    • Fix: More reliable termination
    • Fix: Handle NOOP API exceptions
    • Fix: Handle NOOP situations in Execute API
    • Fix: No need for NOOP commands before a QUIT command
    • Fix: Improve GetReply logging and handling for stale data and NOOP reactions
    • Fix: If QUIT is stashed and reconnect is pending, defer it.
    • Fix: Recognize special commands & responses in all cases
    • Fix: Delay NOOP connectivity tests until connection fully established
  • Connection Status (thanks FanDjango)
    • Fix: IsStillConnected: Clean up Connect/DisconnectInternal interface artifacts
    • Fix: IsStillConnected: Add log messages
  • IBM OS/400 (thanks FanDjango)
    • Fix: Enhance detection of IBM OS/400 servers
    • Fix: Set SITE LISTFMT 1 and SITE NAMEFMT 1 on connect
  • File Transfer
    • Fix: DownloadFile: FileCount Progress updated even when files are skipped (thanks J0nathan550)
    • Fix: DownloadFile: stopPosition not working in some cases (thanks alexgubanow)
    • Fix: DownloadFile: Progress calculation not correct when using stopPosition (thanks alexgubanow)

v49.0.1

  • Fix: Change semaphore logic to prevent deadlock in NOOP Daemon (thanks FanDjango)

v49.0.0

  • NOOP Daemon (thanks FanDjango)
    • New: Revised NOOP handling with new config option Noop to enable NOOP daemon
    • New: New config options NoopInactiveCommands and NoopActiveCommands to set FTP commands usable
    • New: New config option NoopTestConnectivity to issue NOOP commands before every FTP command
    • Change: NoopInterval now has a default of 3 minutes
    • Change: Update GetReply for new NOOP handling logic
  • Connection Status (thanks FanDjango)
    • New: IsStillConnected() API to reliably check if FTP connection is still active
  • Auto Connection (mostly thanks FanDjango)
    • New: Treat timeouts during AutoDetect as failed detection instead of aborting (thanks FabBadDog)
    • Fix: Prevent Auto-Reconnect occurring before connect is complete
    • Fix: AutoDetect is thread unsafe, fix AutoDetectConfig IncludeImplicit logic
  • Multi-Threading (thanks FanDjango)
    • Change: Remove all internal locking in the sync FtpClient
  • FTP Transfers (thanks FanDjango)
    • Fix: Servers with no server handler used wrong GetListing() command
    • Fix: OpenRead retry attempt fails due to typo
    • Fix: Missing code in async stale data handler
    • Fix: Missing code in Async DisableUTF8 API
  • FTP Proxies
    • Fix: Correctly set supported method in SOCKS 5 proxy negotiation (thanks rmja)
  • Codebase Maintainance (mostly thanks FanDjango)
    • Fix: Remove NET50_OR_LATER invalid moniker (thanks sean-bloch)
    • Fix: Cleanup and standardize all .NET Target framework markers (TFMs)
    • Fix: Clean up interfaces and implementation for Connect/Disconnect
  • Testing (thanks FanDjango)
    • Fix: Powershell folder was not being populated, add to GIT ignore list
    • Fix: Docker build process was failing due to debian py image changes
  • Logging (thanks FanDjango)
    • New: Log selected server handler, if any are detected
    • New: Log improvements for OpenAppend, OpenRead and OpenWrite to help in debugging

v48.0.3

  • Utilities
    • New: FtpResult.ToStatus() API to easily compare result values of DownloadFile/DownloadFiles and UploadFile/UploadFiles
  • File Transfer (thanks FanDjango)
    • Fix: Code cleanup for FTP path and directory handling
    • Fix: CreateDirectory sometimes needed in AutoNavigate mode
    • Fix: Optimize CWD/PWD directory navigation in AutoNavigate mode
    • Fix: Prevent infinite loop on stale data read when FTP socket stalled
    • Fix: Some FTP servers throw 450 error for empty folders

v48.0.1

  • Directory Navigation (thanks FanDjango)
    • New: Add auto-navigate support to GetCheckSum
    • Fix: UploadDirectory with FtpNavigate.Conditional does not auto-navigate correctly
    • Fix: Not all linux ftp servers support backslash as path separator character
    • Fix: Cancellation token passing and await syntax for DownloadFile, UploadFile, GetListing

v48.0.0

  • Directory Navigation
    • New: Navigate Config setting to automatically handle FTP directory navigation
    • New: Download and Upload API honors Navigate setting
    • New: GetListing API honors Navigate setting
  • File Transfer (thanks FanDjango)
    • New: DownloadUriBytes API method to directly connect and download a URI/URL
    • Fix: OpenRead, OpenWrite and OpenAppend quirks to handle their stale data
    • Fix: Complete redesign of FTP socket stale data handling and CheckStaleData implementation
  • Auto Connection (thanks FanDjango)
    • New: Overloaded API AutoDetect with object-driven configuration using FtpAutoDetectConfig
    • New: Add options RequireEncryption and IncludeImplicit to AutoDetect to allow for more configurability during auto-connection
    • Fix: Improve AutoDetect behaviour to support various server use-cases
    • Fix: Add RNFM/RNTO FTP commands to critical-sequence list to fix Auto-Reconnect of SSL sessions
    • Fix: AutoDetect empty config is gracefully handled
  • Logging
    • New: Function Logging method to support logging objects
    • Fix: Logging strings creation conditional on it being at all in use (thanks jnyrup)
    • Fix: Improve logging of FTP socket stale data (thanks FanDjango)

v47.0.0

  • Logging (thanks FanDjango)
    • New: Add exact .NET platform build target during the version logging
  • File Transfer
    • New: Config API LocalFileShareOption to allow setting file sharing mode for uploads
    • New: Connection type PASVUSE aka PassiveAllowUnroutable
    • New: Add friendlier names for connection types AutoActive and PassiveExtended
  • File Hashing (thanks FanDjango)
    • Fix: Parse non-standard FTP hashes for BrickFTP, Files.com, ExaVault.com
  • FTP Connections (thanks FanDjango)
    • Fix: SSL Buffering: Improve connection logic, update comments, refactor code
    • Fix: SSL Buffering: Cannot connect to FTPS IIS server on Windows 2019 from Azure Functions V4
    • Fix: Disconnection: Improve conditional compiles and test for each target in FtpSslStream
    • Fix: Disconnection: Use ShutDownAsync for .NET 4.7 and later
    • Fix: InnerException does not get caught during FTPS security exception
    • Fix: Remove dead code in SSL permanent failure detection
    • Fix: Custom Stream: PolicyErrors not being set correctly
  • File Listing (thanks FanDjango)
    • Fix: Improve file name parsing logic for DOS/Windows/IIS servers
    • Fix: Improved null checks for InfoMessages (thanks jnyrup)
  • Testing (thanks FanDjango)
    • Fix: GnuTlsStream integration tests due to invalid stream detection

v46.0.2

  • Fix: Custom stream logging tweak: Message first then close stream
  • Fix: Custom stream: Also log InnerException if it exists within the exception
  • Fix: Internal stream null check to avoid exception in Execute API methods

v46.0.1

  • Fix: Hotfix to remove new DowloadStream overload that causes compile failure

v46.0.0

  • New: Add stopPosition parameter to DownloadBytes and DowloadStream to allow partial downloads

v45.2.0

  • New: Add 9 missing properties to the FTP client interfaces
  • New: Improve log message wording for EPSV & proxies (thanks FanDjango)
  • Fix: Improve GetReply to handle connection loss edge cases and timeout exceptions, possibly incurring cpu-loops (thanks FanDjango)
  • Fix: Improve NOOP behavior to correctly handle timeout exceptions (thanks FanDjango)

v45.1.0

  • New: DiscoverSslSessionLength API to auto compute a working value for SSL Session length (thanks FanDjango)

v45.0.4

  • API: Rename ExecuteGetText to ExecuteDownloadText
  • Fix: AsyncFtpClient.CreateDirectory fails on freshly created client instance (thanks FanDjango)

v45.0.2

  • New: ExecuteGetText API to execute an FTP command and return multiline output (thanks FanDjango)
  • New: Integration with FluentFTP.GnuTLS NuGet package to allow for GnuTLS TLS 1.3 streams

v44.0.1

  • File Transfer
    • New: UploadFiles API in AsyncFtpClient which takes an IEnumerable<FileInfo>
    • New: UploadFiles and DownloadFiles now support rules which allow filtering of uploaded/downloaded files
    • New: UploadFiles and DownloadFiles now return a List<FtpResult> with per-file status rather than just a count
    • New: FtpMissingObjectException thrown when trying to download a non-existant object
    • New: Download API DownloadDirectory, DownloadFile, DownloadBytes, DownloadStream will throw FtpMissingObjectException rather than silently failing
    • New: Download API DownloadFiles will mark non-existant files as IsFailed and add the Exception rather than silently failing
    • Tests: New integration tests to check fail conditions of Download API
    • Fix: Correctly detect non-existant files and folders on FileZillla server (thanks FanDjango)
  • Connection
    • New: Improve reconnect logic to restore working directory and ASCII/Binary data type on automatic reconnection (thanks FanDjango)
    • New: Improve Execute logic to handle working directory on automatic reconnection (thanks FanDjango)
    • New: Do not attempt Reconnect if we have never been connected before (thanks FanDjango)
    • Change: Reconnect logging messages elevated from Info to Warn (thanks FanDjango)
    • Fix: Use ConnectAsync for net472 platform where required (thanks jnyrup)
  • Exceptions
    • Change: Move all exception types into the FluentFTP.Exceptions namespace
    • New: Separate the log message from the exception in the handler (thanks jnyrup)
    • New: Add support for printing exception messages on a newline for socket exceptions (thanks FanDjango)
  • Logging
    • New: Setting Config.LogDurations to configure if durations are to be logged
    • New: Add FTP command roundtrip duration to every Response log message (thanks FanDjango)
    • New: Smart rendering of log message durations (hours, minutes, seconds, MS)
    • Fix: Improve exception handling for connection/disconnection and authentication (thanks FanDjango)
    • Fix: Simplify exception handling using when keyword and new conditional keywords (thanks jnyrup)
  • Quality
    • Fix: Reduce library warnings by improving code patterns used (thanks FanDjango)
    • Fix: Reduce test warnings by improving code patterns used (thanks FanDjango)

v43.0.0

  • Please read the Migration Guide for help migrating to the new version!
  • Packaging (thanks jnyrup)
    • Core FluentFTP package has removed the dependency on MELA (Microsoft.Extensions.Logging.Abstractions)
    • New FluentFTP.Logging package released that integrates with MELA
  • Logging (thanks jnyrup)
    • FtpClient.Logger is no longer a MELA ILogger
    • FtpClient.Logger is now a custom interface called IFtpLogger

v42.2.0

  • Connection (thanks FanDjango)
    • New: Save bandwidth on automatic reconnection by skipping FEAT command
    • Fix: Implementation of connection/disconnection internal logic
    • Fix: Create a default ValidateCertificate handler if none is provided
    • Fix: Auto-reconnect SSL streams after a set number of replies are read
  • File Transfer (thanks FanDjango)
    • New: Upload: Ability to upload file streams with unknown size
    • Fix: Upload: Timeout detection for file streams with unknown size
  • File Listings (thanks FanDjango)
    • New: SetModifiedTime falls back to MDTM if MFMT command not available
    • New: GetListing: Catch control connection loss and retry once
    • Fix: GetListing silently fails and returns empty array if connection lost
    • Fix: IBM OS/400: Correctly handle special chars on EBCDIC code page fault
  • Tests (thanks FanDjango)
    • New: Docker: Add optional path to allow the user to save disk space
    • Fix: Fix many XML compiler warnings in the testing system

v42.1.0

  • FTP (thanks FanDjango)
    • New: Detect Apache FTP Server (allows for future server-specific handling)
    • New: Major improvements to automatic FTP reconnection on connection loss
    • New: Special handling to prevent automatic FTP reconnection during critical FTP sequences
    • New: Config.SslSessionLength setting to perform automatic reconnection to bypass SSL issues
    • Fix: Connect closing has been removed from ReadStaleData and moved into Execute
    • Fix: Improved NOOP handling by detecting more formats of NOOP FTP replies
    • Fix: IOException edge case on FTPS connections after a certain number of FTP commands
    • Fix: Handle early 226 Transfer complete edge case in FTP file download
    • Fix: Honor FtpRemoteExists.NoCheck mode in MoveFile to prevent checking for existing files
  • Tests (thanks FanDjango)
    • New: Improved Docker build process using common images to speed up build times
    • New: Rewrite all first-party Docker images to use pre-built common images
    • New: Support for Apache FTP Server integration test server

v42.0.2

  • FTP (thanks FanDjango)
    • New: DNS Caching to prevent DNS server rejecting name resolution for rapidly repeating requests
    • New: Better log message for stream dispose to indicate which stream was disposed
    • Fix: Typo in FtpException thrown when creating directories
    • Fix: Do not assume the server path when CWD command sent
    • Change: Refactor post-Execute operations and implement parity in sync/async API
  • Connection (thanks FanDjango)
    • Fix: AutoConnect fails with Azure FTP servers due to profile handling
    • Change: Improve exception throwing order for InvalidOperationException if unable to connect
    • Change: Complete rewrite of Connect API
    • New: Add check to ensure that the IP version is permitted when connecting to servers
    • Fix: Implement retry logic to check all possibly server addresses before failing with an exception
    • Fix: Implement improved logic to detect timeouts and socket failures
    • Fix: ConnectTimeout is not taking effect for ConnectAsync API
    • Fix: Reset CurrentDataType when re-connected to an FTP server
  • File Transfer (thanks FanDjango)
    • Fix: Parity in resume logic for upload and download and throw AggregateException where required
    • New: Implement the missing ResumeUpload for synchronous API
    • New: Add a log message so that the resume operation is actually noticed by users

v42.0.1

  • FTP
    • New: TLS authentication failures will always throw AuthenticationException (thanks FanDjango)
    • Fix: Improve handling of stale data on socket after GetListing (thanks FanDjango)
  • Tests
    • New: Redesigned Pureftpd integration test server (thanks FanDjango)
  • Proxies
    • Fix: Read extra bytes to fix GetListing for SOCKS4 and SOCKS4a proxies (thanks FanDjango)

v42.0.0

  • Please read the Migration Guide for help migrating to the new version!
  • API
    • New: LastReplies property to fetch a list of the last 5 server replies (thanks FanDjango)
    • Removed: Config.DisconnectWithShutdown as it was not required (thanks FanDjango)
    • Removed: FtpListOption.NoImage as it was not required (thanks FanDjango)
    • Removed: Privatize CurrentDataType and remove ForceSetDataType (thanks FanDjango)
  • FTP
    • New: SslStream wrapper to send TLS close notifications for .NET and .NET Core (thanks FanDjango)
    • Change: SSL Closure Alert is now always sent when a stream is terminated (thanks FanDjango)
    • Change: Make SSL Shutdown independant of Config.DisconnectWithShutdown (thanks FanDjango)
    • Change: GetReply redesign: New mode to exhaustively read all NOOP replies (thanks FanDjango)
  • Logging
    • New: Verbose file sizes logged during file upload/download (thanks FanDjango)
    • New: FluentFTP version logged after connection (thanks FanDjango)
    • New: GetReply redesign: Verbose logging for NOOP commands (thanks FanDjango)
  • Z/OS
    • New: IBM OS/400: Support blanks in filename and add unit test cases (thanks FanDjango)
  • Tests
    • New: Support for Bftpd integration test server (thanks FanDjango)
    • New: Support for ProFTPD integration test server (thanks FanDjango)
    • New: Support for glFTPd integration test server (thanks FanDjango)
    • New: Support for FileZilla integration test server (thanks FanDjango)
    • New: Redesigned VsFTPd integration test server (thanks FanDjango)
    • New: Ability to run test server containers as FTP or FTPS servers (thanks FanDjango)
    • Fix: Cleanup and improve all Dockerfiles and significantly reduce image size (thanks FanDjango)

v41.0.0

  • Please read the Migration Guide for help migrating to the new version!
  • API
    • New: EmptyDirectory API to delete files but leave top-level directory intact (thanks FanDjango)
  • FTPS
    • Fix: Disable TLS 1.3 as it causes many complex networking issues during data transfer
    • Fix: Unified system to handle permanent failures during AutoConnect
    • Fix: Throw FtpProtocolUnsupportedException if the FTP server is forcing TLS 1.3 connections
    • Fix: Disable SSL Buffering on control connection to improve NOOP handling (thanks FanDjango)
    • Fix: Send an additional NOOP command after uploading files to resolve issues (thanks FanDjango)
  • FTP
    • Fix: Log messages pertaining to stale data are improved (thanks FanDjango)
    • New: Log the TLS protocol used after making a successful FTPS connection (thanks FanDjango)
    • Fix: Correctly forward CancellationToken within DownloadFile, UploadFile, TransferDirectory, DeleteFile, OpenRead, OpenAppend (thanks jnyrup)
    • Fix: Optimize SIZE command usage for UploadFile in NoCheck and OverWrite modes (thanks FanDjango)
    • Fix: Allow reusing the ActivePorts in FTP Active connection mode (thanks FanDjango)
  • Z/OS
    • New: Add LIST functionality for z/OS JES subsystem (thanks FanDjango)
    • New: Switch to using LISTLEVEL 2 in GetListing for more accurate filesizes (thanks FanDjango)
    • New: Improve unit test cases for the z/OS file listing parser tests (thanks FanDjango)
  • Proxies
    • New: Support multiple modes of authentication for SOCKS proxies: GSSAPI, UsernamePassword (thanks jnyrup)
    • New: Throw MissingMethodException if cannot negotiate an authentication method for SOCKS proxies (thanks jnyrup)

v40.0.0

  • Please read the Migration Guide for help migrating to the new version!
  • Special thanks to Robin Rodricks, Michael Stiemke and Jonas Nyrup for this release!
  • Constructor API
    • New: 4 new FTP client constructors that accept FTP host, credentials, config and logger
    • Remove extraneous constructors because properties can be used instead
  • Asynchronous API
    • New: Split main FTP client classes into FtpClient and AsyncFtpClient
    • New: Split main FTP client interfaces into IFtpClient and IAsyncFtpClient
    • New: Split common FTP functionality into BaseFtpClient
    • New: Drop Async suffix for all async FTP methods in AsyncFtpClient
  • Config API
    • New: Remove all config settings from FtpClient and move it into client.Config object
    • New: Dedicated class to hold config settings FtpConfig to cleanup client API
  • Logging API
    • New: Remove client.OnLogEvent and FtpTrace system
    • New: Add logger system client.Logger using industry-standard ILogger interface
    • New: Add Nuget dependency Microsoft.Extensions.Logging.Abstractions v2.1.0
    • Renamed: Legacy logging callback OnLogEvent is now renamed to LegacyLogger
    • Renamed: Logging settings: LogIP renamed to LogHost
    • Remove logging setting LogFunctions as it is always enabled
  • FTP Proxies
    • New: Split FTP proxy classes into FtpClient*Proxy and AsyncFtpClient*Proxy
    • New: FTP proxy classes moved into FluentFTP.Proxy.SyncProxy and FluentFTP.Proxy.AsyncProxy NS
    • New: FTP proxy classes with fully async implementations
    • Fix: Properly override HandshakeAsync in async FTP proxies (thanks jnyrup)
  • Organization
    • Completely redesign the FTP client code organization and structure
    • Update all tests and examples to use the new API and AsyncFtpClient
    • Hide all internally-used functions behind the interface IInternalFtpClient
    • Code style standardization and use new C# language constructs (thanks jnyrup)
    • Add styling rules to .editorconfig to prevent using IDE defaults (thanks jnyrup)
  • Modernization
    • Drop support for .NET Standard 1.2, 1.4 and .NET 2.0, 3.5, 4.0 and 4.5
    • Add support for .NET 4.6.2 and 4.7.2
    • Remove conditional compilation statements for unsupported platforms
    • Remove uncommon static methods FtpClient.Connect and FtpClient.GetPublicIP
    • Remove uncommon method DereferenceLink and DereferenceLinkAsync
    • Remove uncommon properties QuickTransferLimit, MaximumDereferenceCount, EnableThreadSafeDataConnections, PlainTextEncryption
    • Remove uncommon feature FtpListOption.DerefLinks
    • Remove obsolete hashing commands GetHashAlgorithm, SetHashAlgorithm, GetHash, etc
    • Remove obsolete async pattern using IAsyncResult
    • Fix: Forward cancellation token in UploadDirectory and Proxy HandshakeAsync (thanks jnyrup)
    • Fix: Parity in sync/async implementations of Authenticate (thanks FanDjango)
    • Fix: Improve masking out support for removing sensitive usernames from FTP logs
    • Fix: Change all public fields to properties in classes: FtpListParser, FtpClientState, FtpFxpSession, FtpFxpSessionAsync, FtpListItem, FtpProfile, FtpResult
    • Fix: Change all public fields to properties in rules: FtpFileExtensionRule, FtpFileNameRegexRule, FtpFileNameRule, FtpFolderNameRegexRule, FtpFolderNameRule, FtpSizeRule
  • Server support
    • Move all IBM zOS logic into the IBMzOSFtpServer server handler (thanks FanDjango)
    • Move all OpenVMS logic into the OpenVmsServer server handler (thanks FanDjango)
    • Fix: z/OS: Handle z/OS GetListing single line outputs (thanks FanDjango)

v39.4.0

  • New: Add SslProtocolActive property to retrieve the negotiated SSL/TLS protocol version
  • Fix: z/OS: Improve server handling for absolute path calculation (thanks FanDjango)
  • Fix: z/OS: Remove direct z/OS dependancy in GetListing (thanks FanDjango)
  • Fix: z/OS: Add some special cases to handle conversion of remote FTP paths (thanks FanDjango)
  • Fix: z/OS: Add missing parser tests for z/OS FTP server (thanks FanDjango)
  • Fix: z/OS: Fix file size calculation for non-unix z/OS files (thanks FanDjango)
  • Internal: Add integration tests for GetListingAsyncEnumerable (thanks tommysor)
  • Internal: Remove 3 test dockers that do not work (thanks tommysor)

v39.3.0

  • New: Detect D-Link, TP-LINK, Huawei, MicroTik FTP servers (allows for future server-specific handling)
  • Fix: AutoConnect now correctly handles internal AggregateException (.NET 5.0+)
  • Fix: AutoConnect now correctly connects to servers requiring TLS 1.2
  • Internal: Support automated tests for VsFtpD servers (thanks tommysor)
  • Internal: Add tests for custom FTP server auto connection

v39.2.1

  • New: Add 5 missing methods into the IFtpClient interface
  • Fix: z/OS: Inconsistent implementations of GetListing absolute path conversion

v39.2.0

  • New: GetListingAsyncEnumerable method to get file listing using IAsyncEnumerable pattern
  • New: During AutoConnect, throw FtpProtocolUnsupportedException if newer .NET required
  • Fix: Support connecting to TLS 1.3 servers using AutoConnect (.NET 5.0+)
  • Fix: Support automated tests for PureFTP and ProFTP servers (thanks tommysor)

v39.1.0

  • New: Clone method allows for cloning an FtpClient connection with all settings copied
  • New: InternetProtocol property which returns the current protocol used (IPV4/IPV6)
  • New: Status property which returns the current FtpClientState flags (advanced use only)
  • Fix: AutoConnect/AutoConnectAsync now correctly configure Azure FTP servers
  • Internal: Add integration test system using docker to test FluentFTP against many supported FTP servers
  • Internal: Refactor server specific, server strings, cloning and auto connection logic into modules

v39.0.1

  • Fix: ConnectAsync correctly honors ConnectTimeout and TimeoutException is correctly thrown
  • Internal: Add unit tests for Connect/ConnectAsync to ensure ConnectTimeout is honored
  • Internal: Refactor internal file listing handlers & proxy implementation (API is unchanged)

v39.0.0

  • New: Username/password authentication for SOCKS5 proxy connections
  • New: Correctly fill in ConnectionType for all proxy types
  • New: Improved pattern to connect to proxy servers, all details can be specified in FtpProxyProfile
  • New: Examples for all types of proxies (ConnectProxyHttp11, ConnectProxySocks4, ConnectProxySocks4a, ConnectProxySocks5)
  • Change: Rename class SocksProxyException to FtpProxyException
  • Change: Rename class ProxyInfo to FtpProxyProfile and rename members

v38.0.0

  • Change: Rename enum FtpFileSystemObjectType to FtpObjectType
  • Change: Rename enum FtpFileSystemObjectSubType to FtpObjectSubType
  • Change: Rename API Upload to UploadBytes and UploadStream instead of overloading
  • Change: Rename API Download to DownloadBytes and DownloadStream instead of overloading
  • Change: Logging will always mask host IP, username and password by default (configurable)
  • New: Throw AggregateException when an error occuring during resuming a file upload (.NET 4.5+)
  • New: Code generation for parsed file item in order to build accurate unit tests
  • New: Unit tests for Windows, Unix, OpenVMS, NonStop, IBM, Machine listing parsers
  • New: Unit tests for Timezone conversion to UTC and to local time
  • Fix: Improvement to directory parsing for Windows, Unix, OpenVMS, NonStop, Machine listings
  • Fix: Support parsing of links and Unix-symlinks in Machine listings
  • Fix: Enable 2 FTP server specific handlers

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/fluentftp-50.x branch 6 times, most recently from 4309395 to b5ab14d Compare July 3, 2024 20:24
@renovate renovate bot force-pushed the renovate/fluentftp-50.x branch from b5ab14d to 511fcb5 Compare July 3, 2024 20:26
@ChrisPulman ChrisPulman merged commit a3d6370 into main Jul 3, 2024
1 check passed
@ChrisPulman ChrisPulman deleted the renovate/fluentftp-50.x branch July 3, 2024 20:27
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant