| # Introduced in version 2.5.0 |
| |
| ## Major code re-factoring |
| |
| * Reception of an `SSH_MSG_UNIMPLEMENTED` response to a `SSH_MSG_GLOBAL_REQUEST` is |
| translated internally into same code flow as if an `SSH_MSH_REQUEST_FAILURE` has |
| been received - see [SSHD-968](https://issues.apache.org/jira/browse/SSHD-968). |
| |
| * Server SFTP subsystem internal code dealing with the local files has been delegated to |
| the `SftpFileSystemAccessor` in order to allow easier hooking into the SFTP subsystem. |
| |
| * Resolving a local file path for an SFTP remote one |
| * Reading/Writing a file's attribute(s) |
| * Creating files links |
| * Copying / Renaming / Deleting files |
| |
| * `SftpVersionSelector` is now consulted when client sends initial command (as well |
| as when session is re-negotiated) |
| |
| * `ScpCommandFactory` is also a `ShellFactory` that can be used to provide a minimalistic |
| shell that is good enough for *WinSCP*. |
| |
| * Rework SFTP streams so that the client asks and receives as much data as possible - see |
| [SSHD-979](https://issues.apache.org/jira/browse/SSHD-979). |
| |
| ## Minor code helpers |
| |
| * Handling of debug/ignore/unimplemented messages has been split into `handleXXX` and `doInvokeXXXMsgHandler` methods |
| where the former validate the messages and deal with the idle timeout, and the latter execute the actual invcation. |
| |
| * Added overloaded methods that accept a `java.time.Duration` specifier for timeout value. |
| |
| * The argument representing the SFTP subsystem in invocations to `SftpFileSystemAccessor` has been enhanced to expose |
| as much of the available functionality as possible. |
| |
| ## Behavioral changes and enhancements |
| |
| * [SSHD-964](https://issues.apache.org/jira/browse/SSHD-964) - Send SSH_MSG_CHANNEL_EOF when tunnel channel being closed. |
| |
| * [SSHD-967](https://issues.apache.org/jira/browse/SSHD-967) - Extra bytes written when `SftpRemotePathChannel#transferTo` is used. |
| |
| * [SSHD-968](https://issues.apache.org/jira/browse/SSHD-968) - Interpret SSH_MSG_UNIMPLEMENTED response to a heartbeat request as a liveness indicator |
| |
| * [SSHD-970](https://issues.apache.org/jira/browse/SSHD-970) - `transferTo` function of `SftpRemotePathChannel` will loop if count parameter is greater than file size |
| |
| * [SSHD-972](https://issues.apache.org/jira/browse/SSHD-972) - Add support for peers using OpenSSH "security key" key types |
| |
| * [SSHD-977](https://issues.apache.org/jira/browse/SSHD-977) - Apply consistent logging policy to caught exceptions |
| |
| * [SSHD-660](https://issues.apache.org/jira/browse/SSHD-660) - Added support for server-side signed certificate keys |
| |
| * [SSHD-984](https://issues.apache.org/jira/browse/SSHD-984) - Utility method to export KeyPair in OpenSSH format |
| |
| * [SSHD-992](https://issues.apache.org/jira/browse/SSHD-984) - Provide more hooks into the SFTP server subsystem via SftpFileSystemAccessor |
| |
| * [SSHD-997](https://issues.apache.org/jira/browse/SSHD-997) - Fixed OpenSSH private key decoders for RSA and Ed25519 |
| |
| * [SSHD-998](https://issues.apache.org/jira/browse/SSHD-998) - Take into account SFTP version preference when establishing initial channel |
| |
| * [SSHD-989](https://issues.apache.org/jira/browse/SSHD-989) - Read correctly ECDSA key pair from PKCS8 encoded data |
| |
| * [SSHD-1009](https://issues.apache.org/jira/browse/SSHD-1009) - Provide a minimalistic shell for supporting *WinSCP* SCP mode. |