Rebex FTP/SSL for .NET Release History
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).
- FTP: Data channel now maintains a separate session from control channel.
- SecureSocket: Added built-in PFX-based client certificate request handler.
- SecureSocket: Fixed a bug in the negotiation part of the TlsSocket class that caused problems when handling large packets.
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: Added FtpOptions.PauseBeforeUploadClose option to enable workaround for a problem of a missing last data block before SSL data channel close.
- FTP: GetCurrentDirectory enhanced to support another non-standard reply format.
- FTP: Added workaround for severeal MS FTP7 Beta problems.
- FTP: Added FtpOptions.EnableMultipleBlockingCalls option to change the way multiple concurrent calls are handled.
- SecureSocket: Fixed a bug in the server-side TLS/SSL code that caused a SSL2-style ClientHello message to be parsed incorrectly.
- Security: Various changes that do not affect the FTP protocol.
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.
- FTP: Added a workaround for occasional problems with uploads to GlobalScape FTP Server using TLS/SSL in .NET CF.
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.
- SecureSocket: Speed drop caused by the data receiving loop introduced in the previous build was fixed.
- 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: Upgraded to the latest version of Rebex SSL library.
- SSL: New refactored TLS/SSL core introduced.
- 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: Rebex Secure FTP renamed to Rebex FTP/SSL in order to avoid confusion with Rebex SFTP.
- FTP: Fixed a bug in the Close method of the stream returned by GetUploadStream and GetDownloadStream method.
- Security: Added PrivateKeyInfo class and an ability to load and save private keys.
- Security: Fixed a bug in DSAManaged class that made impossible to use keys of some sizes.
- Security: Random big integer generator optimized.
- Security: Several typos in documentation fixed.
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.
-
SecureSocket: Fixed a bug in the Compact Framework version that caused an unnecessary slowdown when using SSL/TLS.
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: The workaround for legacy FTP servers that don't understand "PBSZ" command was extended to cover sessions explicitly secured using "AUTH SSL" command. It only used to apply to implicitly secured FTP sessions.
-
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.
-
Security: Fixed a bug in DSAManaged class that made impossible to use keys of less common sizes.
-
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.
-
Samples: Fixed a minor bug in WinFormClient sample that made it possible for ClearCommandChannel command to be called for unsecured connections.
2006-09-05 Version 2.0.2439.0
-
ProxySocket: Added support for NTLM authentication through HTTP CONNECT proxies.
-
SecureSocket: Several TLS/SSL optimization changes.
-
Security: Several new methods.
2006-08-25 Version 2.0.2428.0
- FTP: Fixed a bug in the finalizer that could cause an exception when the Ftp object using TLS/SSL was finalized.
- 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.
- FTP: Added workaround for FileZilla FTP server. FileZilla FTP server is seriously broken and reports an error with 25-50% probability when an upload using TLS/SSL is finished. (This also happens when its own FTP client is used.)
- SecureSocket: Fixed a bug that could cause a failure or timeout on extremely fast connections.
- Security: A PKCS#7 parser and encoder added.
- Security: Several new methods added to Certificate and CertificateStore classes.
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.
- SecureSocket: Fixed a bug that caused the connection not to be closed correctly under special circumstances.
- Security: Several new methods and classes added.
- Security: Internal ASN.1 parser replaced by a recent version.
- Security: Fixed a bug in RSA signature format for MD5 and SHA-1.
- 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.
- FTP: Added workaround for Nofeel FTP Server in TLS/SSL mode that is unable to handle the final handshake message and first block of data in the same packet.
- SecureSocket: Fixed a bug that caused the connection not to be closed correctly if the server ignores TLS/SSL close notifications.
- Security: GetSubjectKeyIdentifier method added to Certificate class.
- Security: Added several missing argument checks.
- Security: Certificates other than RSA and DSS now load as well.
2006-04-24 Version 2.0.2305.0
- Version numbering scheme changed.
- A .NET Compact Framework version of Rebex FTP/SSL is now available as well.
- 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.
- SecureSocket: Changes for compatibility with .NET Compact Framework's
implementation of System.Net.Sockets.
- 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 IsSecured, TlsSocket, 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.
- FTP: Fixed a missing Data property in FtpTlsDebugEventArgs
class.
- FTP: Added ForceSilentCcc option to deal with buggy FTP servers
that have a habit of not sending CloseNotify messages while shutdowning SSL after
a response to CCC command.
- FTP: Fixed a bug that caused the Connect or Secure method to
close the connection if the FTP server replies to AUTH SSL command by an obsolete
3xx response.
- FTP: BeginClearCommand method now actually returns the IAsyncResult.
- FTP: TlsDebug event is now being called from the same thread
that the current operation runs in.
- SecureSocket: Added new TlsDebugEventType UnexpectedException
for easier handling of unexpected exceptions thrown from inside the SSL/TLS code.
- SecureSocket: Added SilentUnprotect option to enable shutdown
of SSL channel without sending the CloseNotify message. Needed to deal with buggy
SSL implementations.
- SecureSocket: Added DoNotBufferDate option for enhanced control
over the SSL channel.
- SecureSocket: Minor internal changes towards the forthcoming
Compact Framework support.
- Security: Fixed a bug that caused the Certificate.Decrypt method
to return an array of wrong length.
- Documentation: Various small corrections.
2005-07-29 Version 2.0.0.9
- Component: Various changes in Rebex Security to make Secure
FTP for .NET completely compatible with 64bit version of .NET Framework 2.0.
- Component: Added ClearCommandChannel method to revert from
protected to unprotected control channel.
- Component: Component doesn't assume anything about the protection
state upon connection, which makes it compatible with Covalent FTP Server.
- Component: CertificateChain enhanced to allow certificate validation
using local machine chain engine in addition to current user chain engine.
- Component: CertificateStore constructor now accepts certificate
store location, making it possible to use local machine store and others.
- Component: CertificateStore class now cleans all unmanaged
resources when disposed.
- Component: Certificate, CertificateChain, CertificateException,
DistinguishedName, TlsCipher and TlsException classes are serializable.
- Component: Added TlsSocket.Unprotect method to allow reverting
back from TLS to unencrypted socket.
- 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-12-08 Version 2.0.0.8
- First release of FTP over TLS/SSL.