Rebex

Skip to content, Skip to navigation




Rebex FTP for .NET Release History

2010-07-20 Version 3.0.3854.0 #

  • FTP: Ftp class inherits from NetworkSession base class that implements some common properties.
  • FTP: Added a workaround for an FTP server with broken MLST output.
  • FTP: SITE command is no longer used to detect MS IIS FTP 7.x because it caused problems to some firewalls.
  • FTP: FtpList.GetEnumerator is now an implementation of IEnumerable<FtpItem>.
  • FTP: Better error handling in GetFiles/PutFiles methods.

2010-05-20 Version 3.0.3793.0 #

  • FTP: A more meaningful exception is raised when a premature OK response is received while still uploading data.
  • FTP: Information about invalid data IP address detection is now written to the log.
  • FTP: Fixed a bug that caused "/" local path argument of PutFiles/GetFiles methods to be treated as current directory.
  • FTP: More information is logged when a FTP connection is broken.
  • FTP: A full local path is passed in FtpBatchTransferProgressEventArgs.
  • FTP: Added experimental FtpOptions.UseLargeBuffers to use larger internal buffers (doesn't seem to make substantial difference on most systems).
  • FTP: Fixed a bug in PRET command implementation that caused problems with DrFTPd servers.
  • FTP: FtpTransferProgressEventArgs now contain RemotePath and LocalPath when available.
  • FTP: FtpBatchTransferException is now serializable.
  • FTP: On .NET Compact Framework, SO_LINGER option is enabled for data sockets.

2010-03-11 Version 3.0.3723.0 #

  • FTP: Maximum allowed UploadBufferLength changed from 64KB to 16MB.
  • FTP: Ftp.Connect method no longer throws UriFormatException when invalid proxy hostname is specified.
  • FTP: Added support for OTC S/KEY(tm) (One-Time Password System) authentication according to RFC 2289 (optionally used by Serv-U FTP Server). (S/KEY is a trademark of Bellcore.)
  • FTP: Added FtpBatchTransferOptions.XCopy batch transfer mode. This is an alternative form of FtpBatchTransferOptions.Recursive that traverses all subdirectories but only transfers files that match the specified mask.
  • FTP: New Ftp.DataAddress property to make it possible to specify active mode IP address transmitted to the FTP server.
  • FTP: FtpTransferProgressEventArgs.BytesPerSecond property added that contains the estimated current speed.
  • FTP: HierarchyRetrieve events are no longer raised when only a single file is transferred.
  • FTP: A more meaningful exception is thrown when a directory path is passed to Ftp.GetFile method instead of file path.
  • FTP: Ftp.TransferProgress event is called less often on high-speed connections now (several times per second is sufficient).
  • FTP: FtpOptions.SendDataAsynchronously is deprecated and ignored.
  • FTP: Fixed PutFiles method to accept all kinds of root paths (such as "c:", "c:/", or "c:\" - previously, only "c:\." worked).
  • ProxySocket: The underscore character is now allowed in hostnames (this is non-standard, but used by Windows).
  • ProxySocket: FileLogWriter is capable of logging into a single file from multiple applications now.
  • ProxySocket: ProxySocket.Send behavior changed to always send all the data or fail.

2009-10-27 Version 3.0.3588.0 #

  • FTP: Added a workaround for bad PASV implementation at ftp-edi.pubnet.org.
  • FTP: Enhanced MODE Z support.
  • FTP: CCC command no longer actively sends close_notify TLS message by default.
  • FTP: Fixed a bug in proxy code that caused data transfers to fail when using HTTP CONNECT proxy with NTLM authentication.
  • FTP: Added FtpOptions.ConnectPassiveLater option - makes the passive mode transfer initialize the connection only after the LIST/NLST/RETR/STOR commands are sent (instead of after PASV).
  • ProxySocket: Proxy object now has Encoding property that makes it possible to specify character set to be used for parsing server responses.
  • ProxySocket: ProxySocketException.ErrorCode property now returns HTTP and Socket4/Socks5 error codes when available.
  • ProxySocket: SspiAuthentication and GssApiProvider classes added that provide GSSAPI/SSPI functionality.

2009-07-13 Version 3.0.3479.0 #

  • FTP: Added automated UTF-8 detection on modern FTP servers.
  • FTP: Listing parser enhanced to support some non-English month names that sometimes occur in file listings of broken servers.
  • FTP: Fixed a bug that might cause an active FTP connection to immediately time out when executed on an existing but idle connection.
  • FTP: IEnumerable<T> support added to collections for .NET 2.0 and higher.
  • FTP: Ftp.CopyToAnotherServer method can now handle Abort requests.
  • FTP: Bandwidth throttling functionality slowed down the transfer too much when a limited but high speed was requested.

2009-05-20 Version 3.0.3428.0 #

  • FTP: Fixed a bug in GetRemoteChecksum method that caused it not to work for filenames that contain space characters.
  • FTP: Disposing Ftp object from another thread while an operation is in progress no longer causes NullReferenceException and other similar errors to occur in the operation thread.
  • FTP: Better URL handling in the Connect method (although it is hostname-only by design, lot of users actually pass URLs to it).
  • FTP: Enhanced logging of incoming connection in active mode.
  • FTP: Added a workaround for WS_FTP that requires MLST/MLSD arguments to be quoted if they contain spaces.
  • FTP: Added FtpException.Transferred property as a replacement for the misspelled FtpException.Transfered property.
  • FTP: Fixed a bug that caused FtpException's BytesTransferred property not to be set for exceptions thrown by asynchronous methods.
  • FTP: Fixed a bug in MODE B transfer mode that might cause an improper block length to be received in rare circumstances.
  • FTP: Fixed a bug in GetFiles and PutFiles method that caused a wrong path to be used when a filename only was specified or when a root path was specified.

2009-02-19 Version 3.0.3333.0 #

  • FTP: Asynchronous operations now use a thread pool.
  • FTP: FileExists and DirectoryExists methods modified to return the result for "." and "/" arguments instantly without asking the server.
  • FTP: Fixed a workaround for problem with local IP address announced by the server when connecting through ActiveSync to an FTP server that runs on the same machine.
  • FTP: KeepAliveDuringTransfer option made compatible with more FTP servers.
  • ProxySocket: Fixed a bug in Socks4/Socks5 proxy code that made it impossible to use FTP in active mode with these proxies.

2009-01-14 Version 3.0.3300.0 #

  • FTP: Added PutFiles and GetFiles method to make it possible to transfer multiple files easily by transfering a whole directory tree or use wildcards.
  • FTP: Packages for .NET Compact Framework 3.5 added.
  • FTP: Transfer compression support added to .NET CF 3.5 build (it has only been available for .NET 2.0 and higher previously).
  • FTP: Added enhanced logging capabilities.
  • FTP: Added a workaround for Serv-U FTP that ungracefully closes data connection for zero-length files.
  • FTP: A better exception is now thrown by a method that has been terminated by calling Dispose from another thread.
  • FTP: Substantial transfer speed increase on fast networks.
  • FTP: Fixed a bug that caused the KeepAliveDuringTransfer option not to work properly.
  • FTP: Asynchronous method threads are now named.
  • FTP: Added a workaround for misconfigured FTP servers that send an unusable private network address when initializing a data transfer.
  • FTP: Disabled control connection flushing when sending commands because it caused a noticeable slowdown on fast networks.
  • FTP: FtpOptions.KeepAliveDuringTransfer option code enhanced by adding the '200 No-operation ...' response to the list of possible NOOP command responses.
  • FTP: SetTransferType method changed to behave just like TransferType property and marked obsolete.

2008-07-24 Version 2.5.3127.0 #

  • FTP: Fixed a bug introduced in the last release that caused a bad InvalidOperationException to be thrown when FTP server reported an error during upload.

2008-06-14 Version 2.5.3087.0  #

  • FTP: Finished property added to FtpTranferProgressEventArgs class.
  • FTP: New variants of GetDownloadStream and GetUploadStream added.
  • FTP: New tutorial for file transfer resume functionality.
  • FTP: Added detection for SFTP and SSH servers that are often mistaken forh SFTP to produce better exception messages. FTP servers in wrong modes are also detected.
  • FTP: Fixed a bug that caused the DoNotDetectFeatures option to fail.
  • FTP: Added hostname validity checking to Connect method.
  • ProxySocket: New ISocket interface to make it possible to easily implement custom transport layers.
  • ProxySocket: Fixed an unhandled exception that occured during a failed connection to a proxy specified by an IP address.

2007-12-06 Version 2.5.2896.0  #

  • All: Packages for .NET 3.5 and Visual Studio 2008 now available.
  • FTP: Added support for IBM 4690 file and directory listing format.
  • FTP: Fixed several bugs in MODE Z (compressed transfers) code.
  • FTP: Fixed several bugs in MODE B (block transfer) code.
  • FTP: Fixed a bug that caused an invalid exception to be raised on specific type of transfer failures.

2007-11-11 Version 2.5.2871.0  #

  • FTP: Support for MODE B (block mode) with MS FTP7 that makes it possible to re-use a single data connection for multiple transfers.
  • FTP: Experimental support for MODE Z (data transfer compression) added to .NET 2.0 build.
  • FTP: Support for HOST command (multiple virtual FTP hosts on a single IP address). (Disabled by default).

2007-08-30 Version 2.5.2800.0  #

  • FTP: Added Bandwidth throttling support - MaxUploadSpeed and MaxDownloadSpeed properties.
  • FTP: Added CRC32, MD5 and SHA-1 checksum support - GetSupportedChecksums, CalculateLocalChecksum (static) and GetChecksum methods.
  • FTP: GetCurrentDirectory enhanced to support another non-standard reply format.
  • FTP: Added FtpOptions.EnableMultipleBlockingCalls option to change the way multiple concurrent calls are handled.

2007-05-24 Version 2.5.2700.0  #

  • FTP: Added support for direct server-to-server transfers, also known as FXP! Check out the new CopyToAnotherServer method.
  • FTP: Added ListItemReceived event. This makes it possible to display the list items as they are received, to filter them or to abort the transfer based on previously received items.
  • FTP: NameList added to FtpListingType.
  • FTP: SetTransferType/BeginSetTransferType/EndSetTransferType methods were marked as obsolete. Please use the TransferType property instead.
  • FTP: Added support for DrFTPD's PRET command.

2007-04-20 Version 2.3.2666.0  #

  • FTP: Added SetFileDateTime method.
  • FTP: Added FileExists and DirectoryExists methods. These simple operations are very hard to achieve using the FTP protocol and we use a combination of several commands to achieve the desired functionality.
  • FTP: Added DataPortRange property to specify local data port range for active and passive mode transfers.
  • FTP: GetFile/PutFile methods refactored to use the same infrastructure as GetDownloadStream/GetUploadStream methods.
  • FTP: GetList method optimized to parse the list on-the-fly, resulting in enhanced speed.
  • FTP: Removed unnecessary control channel checking code that caused a noticable slowdown of data transfers.
  • FTP: Fixed a bug in MLSD list parser - date/time was treated as local time.
  • FTP: In active mode, when waiting for the server to connect, error response is now processed as soon as it arrives, without waiting for the connection attempt to time out.
  • FTP: GetConnectionState no longer fails on disconnected objects.

2007-03-06 Version 2.0.2621.0

  • FTP: IPv6 support with .NET Framework 1.1/2.0/3.0 and .NET Compact Framework 2.0.
  • FTP: Enhanced handling of uploads terminated by the server. More meaningful exceptions are now reported.
  • FTP: Compatibility enhancements in download aborting code.
  • FTP: Fixed a bug that caused the Close method of the Stream returned by GetDownloadStream to fail with some servers on fast networks.
  • FTP: Fixed a minor bug in FtpResponse class.
  • Samples: WinFormClient is now Vista-compatible.

2007-01-11 Version 2.0.2567.0

  • FTP: Fixed a bug in the Close method of the stream returned by GetUploadStream and GetDownloadStream method.

2006-12-12 Version 2.0.2537.0

  • FTP: Fixed bad ArgumentExceptions in Ftp.Connect and FtpList.GetFiles methods.

2006-11-27 Version 2.0.2522.0

  • FTP: GetUploadStream/GetDownloadStream methods optimized. They no longer use a background thread and should be faster and more reliable.

2006-10-18 Version 2.0.2482.0

  • FTP: Default transfer mode is now binary.
  • FTP: Added setter to TransferType property, making SetTransferType method obsolete.
  • FTP: Added CheckConnectionState/GetConnectionState methods to check the state of the connection without sending any command to the server.
  • FTP: MLSD file and directory listing parser is now able to parse legacy mlst-05 style listings.
  • FTP: Added UploadBufferLength property to manipulate the size of the upload bufffer.
  • FTP: Added a workaround to the CF version for a transfer problem that often occurs when using ActiveSync to connected to a FTP server running on the same machine as ActiveSync. This makes the IgnorePassiveModeAddress option unnecessary in these cases.
  • Samples: Fixed a bug in the VB.NET version of PocketFtp sample's platform detection routine.
  • Samples: Many calls to SetTransferType that are now unnecessary were removed.

2006-09-15 Version 2.0.2449.0

  • Samples: Fixed a bug in the VB.NET version of WinFormGet sample that made it fail in .NET 2.0.

2006-09-05 Version 2.0.2439.0

  • ProxySocket: Added support for NTLM authentication through HTTP CONNECT proxies.

2006-08-25 Version 2.0.2428.0

  • FTP: Fixed a bug that made the VMS file and directory listing parser fail in rare circumstances.
  • FTP: Added IgnorePassiveModeAddress option as a workaround for FTP servers or firewalls that instruct the client to connect to an unaccessible IP address when initializing passive mode data connection.

2006-07-10 Version 2.0.2382.0

  • FTP: File and directory listings parser was optimized, it is now much faster.
  • FTP: SupportedExtensions and EnabledExtensions added to make it possible to determine and enable/disable FTP protocol extensions.
  • FTP: Support for MLSD file and directory listings added. GetList now uses this as default on servers that support this extension.
  • FTP: The LF character is now treated as an end-of-line marker, just like CRLF sequence, to enable Rebex FTP to work with buggy servers that send LF instead of CRLF.
  • ProxySocket: Fixed a bug that caused the proxy password to be ignored (since build 2305).

2006-06-12 Version 2.0.2354.0

  • FTP: Server feature detection added (the FEAT command). Can be disabled using DoNotDetectFeatures option for complete compatibility with previous versions.

2006-04-24 Version 2.0.2305.0

  • Version numbering scheme changed.
  • FTP: DefaultPort constant with a value of 21 added to Ftp class.
  • FTP: Custom directory list parser is now allowed to set the FtpItem to null, which causes the line not to be parsed.
  • FTP: Internal asynchronous methods framework upgraded to the latest version.
  • FTP: Several missing connection state checks added.
  • FTP: Most ArgumentExceptions enhanced and some missing added.
  • FTP: Overall code beautification.
  • FTP: Added TimeoutAsynchronousMethods option to make asynchronous methods optionally time out in the same way the synchronous methods do. (By default, only synchronous methods time out.)
  • FTP: Size of sent blocks in .NET Compact Framework changed to 1460, which seems to be more compatible.
  • Samples: ResumableClient sample added to Compact Framework version.
  • Samples: WinCeClient sample merged into the PocketFtp sample.
  • Samples: Numerous enhancements and fixes.

2005-11-14 Version 2.0.0.10

  • FTP: FtpException is now based on Exception instead of InvalidOperationException.
  • FTP: FtpList is now serializable.
  • FTP: Fixed a bug that caused the PutUniqueFile method to throw an exception.
  • FTP: Added several COM-interop related attributes to some classes to allow basic FTP functionality to be used through COM.
  • FTP: Disconnect method changed to not throw an exception unless another operation is in progress to reflect the way most people use this method.
  • FTP: Added KeepAliveDuringTransferInterval property to allow specifying the interval for KeepAliveDuringTransfer option.
  • FTP: Behavior of Begin.../End... methods changed so that a call to End... is required after an end of the operation prior to additional calls to Begin... methods.
  • FTP: Ftp properties LocalEndPoint and RemoreEndPoint now LocalEndPoint and RemoreEndPoint now throw InvalidOperationException when not connected.
  • FTP: Added SendDataAsynchronously option to upload data using BeginSend/EndSend instead of Send to deal with hanging Send on some Windows Mobile devices.
  • FTP: The component and samples support .NET 2.0 and Visual Studio .NET 2005.

2005-07-29 Version 2.0.0.9

  • Component: Enhancements in unix file list parser to support more variants of unix file listings.
  • Component: Added KeepAliveDuringTransfer option to deal with buggy firewalls that have a habit of terminating idle control connection during long file transfers.
  • Component: FtpWebRequest.GetResponse now returns an empty response for FTP upload instead of throwing an exception.
  • Component: Compact Framework FTP running on full .NET now sends TCP signals with ABOR command during transfer.
  • Component: Removed workaround for ActiveSync (prior to build 4034) bug from the CF version that made it impossible to close data connections successfully.
  • Component: Changes to enable C# 2.0 compilation with no warnings.
  • Component: Trial version for .NET Compact Framework now works with .NET CF 2.0.
  • Component: Exception handling code in several places cleaned a bit. Other minor changes. Few lines of unnecessary code removed.
  • Component: "Cannot change state" exception messages modified to be more understandable.
  • Component: Fixed a bug that caused the component not to detect closed control connection in some cases.
  • Component: Asynchronous method framework enhanced to allow null arguments to be passed to asynchronous Ftp methods.
  • Component: FtpException, ProxySocketException, FtpProxy, FtpItem and FtpList classes are serializable.
  • Documentation: Various small corrections.

2004-11-10 Version 2.0.0.7

  • Component: Fixed a bug that caused Timeout exception to be thrown instead of OperationAborted exception in special circumstances.
  • Component: Fixed a bug in Socks5 authentication code (incorrect version in authentication messages).
  • Component: List parser understands a rare variant of Unix directory listing with interchanged month and day parts.
  • Component: Ftp.Disconnect method always closes the connection, even if the object is not in ready state.
  • Documentation: Description of FtpTransferProgressEventArgs properties clarified.

2004-09-23 Version 2.0.0.6

  • Component: Fixed a bug that caused the component to remain in a wrong state when disconnected by the server.
  • Documentation: Description of GetRawList method clarified a bit.

2004-09-01 Version 2.0.0.5

  • Component: Underlying locking/unlocking/async/aborting code fixed to get rid of "Another operation is pending" exception after timeouts.
  • Component: Abort method can be called at any time, even inside callbacks.
  • Component: ChangeDirectory accepts an empty path.
  • Component: Fixed a bug in ProxySocket's Accept method that could cause active mode transfers to hang under rare circumstances with some servers.
  • Component: Lots of minor changes in the code.
  • Component: Assemblies have been marked as CLS-compliant.
  • Documentation: Several corrections in the reference.

2004-04-02 Version 2.0.0.4

  • Component: Added a new override for Ftp.GetList method to allow arguments.
  • Component: Added a new property BytesSinceLastEvent to TransferProgress event. It contains the number of bytes transfered since the last call.
  • Component: Enhancements in file transfer routines, allowing higher transfer rate on high-speed connections.
  • Component: Description of PutFile and GetFile methods clarified.
  • Component: GetAddressLong and GetAddressBytes methods added to ProxySocket class to overcome differences between .NET 1.0 and 1.1.
  • Component: All references to obsolete IPAddress.Address in Socks4/Socks5 and FTP code replaced either with calls to ProxySocket.GetAddressLong or ProxySocket.GetAddressBytes.
  • Component: All references to DateTime.Now.Ticks replaced by more appropriate Environment.TickCount.
  • Component: Logoff method was renamed to Reinitialize and a new empty Logoff method was added to solve the confusion it caused.
  • Component: Fixed a bug that caused TransferProgress event not to be raised with FtpTransferState.None when the transfer is finished.
  • Component: Lots of changes and improvements to the proxy code.
  • Component: Fixed problems in trial version key check on PocketPC 2003 emulator.
  • Documentation: A number of corrections in the reference. Description of Timeout property clarified.

2003-11-24 Version 2.0.0.3

  • Component: Fixed a bug that caused trial version not to work in ASP.NET with impersonation enabled.
  • Component: Enhancement in Available property of the ProxySocket class.

2003-11-07 Version 2.0.0.1

  • Component: New overloads for Sort method added to FtpList.
  • Component: Corrected the Version property of the Ftp class that returned wrong version number.
  • Component: No IP addresses are resolved using DNS now.
  • Component: Fixed a bug in synchronous methods of the ProxySocket that caused them to hang.

2003-11-01 Version 2.0.0.0

  • Component: Assembly divided into two parts: FTP and Proxy Socket.
  • Component: Tested with Mono 0.28.
  • Component: Event handlers can now also be used for FtpWebRequest.
  • Component: Fixed a bug that could cause a file transfer to fail with some servers and hang under certain circumstances.
  • Component: Fixed a bug in FTP stream code that caused an exception to be thrown if the transfer was too fast.
  • Component: More characters are now allowed in remote paths (better interoperability with VMS).
  • Component: Fixed a bug that caused Ftp class to become unusable if unable to open a local file during asynchronous PutFile or GetFile.
  • Component: Few missing error messages fixed.
  • Component: Minor fixes in FtpProxy class.
  • Component: Server compatibility enhancements in data transfer and aborting code.
  • Component: Lots of other fixes and enhancements in FTP code and proxy code.

2003-09-01 Version 1.3.0.1

  • Component: New overloads for GetNameList and GetRawList methods added.

2003-08-28 Version 1.3.0.0

  • Component: Many enhancements in the underlying proxy code.
  • Component: Abort command is more reliable.
  • Component: Large number of smaller cosmetic changes in the code.
  • Component: Changes towards better portability.

2003-08-20 Version 1.2.2.0

  • Component: Fixed a bug in HttpConnect proxy code that caused the beginning of the data stream to be discarded under certain circumstances.

2003-08-14 Version 1.2.1.0

  • Component: Fixed a bug that caused timeout with Microsoft ISA server (Socks4a + active mode only).
  • Component: Fixed a misspelled error id (Socked.Timeout instead of Socket.Timeout) in proxy code. It caused the misspelled id to be used as an exception message instead of the real description.
  • Component: Compatibility enhancements of Abort code - now compatible with GlobalScape FTP Server.

2003-08-12 Version 1.2.0.0

  • Component: Minor bug fixed in EPLF list parser (invalid handling of dates > 2038).
  • Component: Fixed a bug that caused an unexpected exception to be thrown when calling Ftp.Connect with an empty hostname.
  • Documentation: Ftp.Logoff method documentation enhanced.
  • Samples: New sample - WinFormGet (asynchronous downloader - C# and VB.NET).
  • Samples: Several enhancements and bugfixes of WinFormClient and ConsoleClient code samples.
  • Samples: VB.NET version of WinFormClient and ConsoleClient code samples.

2003-07-03 Version 1.1.0.0

  • Component: Server compatibility enhancements in file transfer aborting code. (There were problems with WarFTPd and some older versions of Serv-U.)
  • Component: Ftp.Disconnect method now does not throw exception if an error is encountered.
  • Component: Fixed a bug in Unix list parser that caused an exception while parsing ftp://ftp.netscape.com/dev/.
  • Component: Fixed a bug in Socks4/Socks5 proxy code that caused an exception to be thrown for some IP addresses.
  • Component: Removed few lines of unused code in HTTP proxy code.
  • Component: Default character encoding is now Encoding.Default instead of Encoding.ASCII.
  • Documentation: Minor enhancements in FtpException documentation.
  • Samples: Several bugfixes in WinFormClient sample.
  • Samples: ConsoleClient code sample now supports resuming aborted transfers and uploading directory trees.

2003-04-14 Version 1.0.0.0

  • Initial release.