From c6f6d1f36c0d697c6caf4ed50066b198fb318af3 Mon Sep 17 00:00:00 2001 From: shikhar Date: Thu, 18 Sep 2014 06:46:08 -0700 Subject: [PATCH] Updated Changelog (markdown) --- Changelog.md | 248 +++++++++++++++++++++++++-------------------------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/Changelog.md b/Changelog.md index 7207efb..6f43c55 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,125 +1,125 @@ -# NO LONGER MAINTAINED - -version 0.9.0 ------------------------ - -+ Throw `IllegalStateException` for sanity-checking instead of assert statements inside `SSHClient`. (GH-89) -+ Use debug rather than info logging when failing to load keys from a location in `sshClient.authPublickey(user, locations...)`. (GH-84) -+ Possibility of `ArrayIndexOutOfBoundsException` on `channelOutputStream.write()`. (GH-99, GH-104) -+ Add 'unconfirmed writes' feature to `RemoteFileOutputStream`, allowing for major speedups in SFTP upload (should be at least 2x, ymmv). This is brought to you by a new parameter in the `RemoteFileOutputStream` constructor called `maxUnconfirmedWrites`, which is utilised by `sftpFileTransfer.upload()` with a default value of 16. (GH-97) -+ We were missing a socket flush during the initial SSH banner exchange. -+ Transport/Connection/SFTP layer timeout methods are now millisecond granularity. `getTimeout()`/`setTimeout()` are called `getTimeoutMs()`/`setTimeoutMs()` respectively. -+ Simplified the `UserAuth.authenticate(..)` interface by making it one-method-at-time, with the trial and error business happening in `SSHClient`. -+ Added `UserAuth.getAllowedMethods()`. (GH-106) -+ `StatefulSFTPClient.cd()` should not update internal cwd state if stat fails. (GH-90) -+ Potential visibility issue on some channel request info received from server like exit status. (GH-114) -+ Dependency version updates. - -version 0.8.1 --------------- - -+ Made logs less chatty by changing some info logging to be debug logging. (GH-80) -+ Regex pattern matching for password prompt in `PasswordResponseProvider`. (GH-77) -+ `AbstractChannel.close()` should be no-op if the channel is already closed. (GH-53?) - -version 0.8.0 --------------- - -+ Make `sshClient.disconnect()` no-op if already disconnected / never connected (GH-67). -+ Set default tty to `vt100` for shell sessions. -+ Much improved `TransferListener` interface that supports immutable implementation, however as it is signfiicantly different any overridden impl will break. -+ Fix for remote max packet size when greater than MAX_INT being treated as -1. (GH-57) -+ Avoid string concat in various logging statements. -+ `sftpClient.mkdirs()` will not attempt to create the rightmost child 2x if there was a trailing separator in path. -+ Fix for infinite loop in buffer allocation. (GH-72) -+ `SFTPFileTransfer` now has a preference for whether attributes should be preserved. (GH-42) - -version 0.7.0 --------------- - -+ `OpenSSHKnownHosts` re-implemented to better support the format seen in the wild, e.g. optional markers. (GH-41) -+ `SocketClient` made public so that SSHClient can be mocked for testing. -+ Publish sources jar. (GH-37) -+ Fixed typo on `SFTPClient.getFileTansfer()` -+ Removed deprecated methods on `Session.Command`, `getOutputAsString()` and `getErrorAsString()`. -+ Window adjustments were being logged incorrectly, fixed. -+ Fix a condition where `ChannelOutputStream` writes or flushes may wrongly block sitting around waiting for window adjustments where none was required. Issue was observed with non-OpenSSH servers like dropbear and WinSSHD. (GH-47) -+ Fix for using sshj in OSGi. (GH-50) -+ Local port forwarding - there was no way to cleanly close the server socket. (GH-26) - -version 0.6.1 --------------- - -+ Race condition in `AbstractChannel` channel requests (0.6.0 regression). (GH-36) - -version 0.6.0 --------------- - -+ Fixed deadlock condition in `AbstractChannel`. (GH-27) -+ `StatefulSFTPClient` doesn't cwdify all commands. (GH-28) -+ Fixed bug in SFTP `FileMode` for AIX/Unix directory mask. (GH-31) -+ The option to use an 'upload filter' is back in `SCPUploadClient`. (GH-34) - -version 0.5.0 --------------- - -+ In case of `publickey` authentication using a string rather than a file, prevent private key data from leaking in logs / on authentication exception. (GH-20) -+ SessionChannel#changeWindowDimensions was broken. (GH-21) -+ Prevent occasional spurious NPE when disconnecting at AbstractDirectChannel#notifyError. -+ SSHClient implements Closeable. -+ OSGi-fication. (GH-22) - -version 0.4.1 ---------------- - -+ Intermittent key exchange failures. (GH-18) -+ Support for `publickey` authentication from strings. (GH-16) - -version 0.4.0 ------------------------ - -+ `DisconnectListener` callback. -+ `FileTransfer` interface refactored. Local source and destination paths can be any implementation of `LocalSourceFile` and `LocalDestFile`, respectively. -+ Bug in case of SCP remote path having spaces fixed. -+ Deprecated `Command#getOutputAsString()` and `Command#getErrorAsString()` -- recommend using `IOUtils#pipeStream(..)` instead. -+ `StreamCopier` interface updated, now uses builder pattern. `start()` to spawn, `copy()` to do it in current thread and block. -+ Possible to specify an alternate path separator (for Windows SFTP servers). -+ Several internal refactorings that make the library nicer... - -version 0.3.1 ------------------------ - -+ stderr `ChannelInputStream` gets correctly notified of errors e.g. at the transport layer. -+ Added a `channel.join(timeout)` variant. -+ An alternate `AndroidConfig` to initialize `SSHClient` with on Android 2.3+ was added, which uses `JCERandom` instead of `BouncyCastleRandom`. -+ In SCP upload, detect when destination directory does not exist. This was previously detected as a warning (well, technically it is sent as one...) but should truly be an error. All SCP 'warnings' now treated as errors. -+ Bug with `StatefulSFTPClient#put` fixed - was doing a get instead of a put! -+ `SessionChannel` reuse now gets an explicit runtime error. - -version 0.3.0 ------------------------ - -+ `channel.close()` method no longer called implicitly on disconnecting, because this is error prone. See updated examples. -+ Logging fix: enable filtering, previously due to misconfiguration this was hard to do. -+ Don't barf when a server sends more `CHANNEL_DATA` than announced. Now there is no exception in this case, but still only as much data as announced is consumed. -+ Client was still identifying as `SSHJ_0_1` -- changed to `SSHJ_0_3`. -+ Support for SFTP versions less than 3. -+ Host based authentication - see `net.schmizz.sshj.userauth.method.AuthHostbased`; pass an instance to `SSHClient.auth()` to use. -+ Added `Channel.join()` to allow blocking on channel close event. Useful e.g. when waiting for a command to exit. -+ Various code cleanups. - -version 0.2.3 --------------- - -+ In 0.2.0 `DefaultModeGetter` and `DeaultModeSetter` started throwing exception when permissions couldn't be retrieved/assigned, and this was problematic on windows so the exception has been replaced with a log message. - -version 0.2.0 --------------- - -+ Now compiled with compiler source and target level = 6 -- JRE 6+ is required! Always was, just more explicit now. -+ New methods in `SFTPClient`: checking if a file/directory exists (`statExistence()` -- returns `null` on file not found); recursively create directories (`mkdirs()`). -+ Bug with SFTP directory listing being truncated fixed. -+ Timestamps and permissions are now preserved by default when transferring with SCP or SFTP. A bug which prevented even using the `ModeGetter` or `ModeSetter` interface for this purpose has been quashed. -+ `keyboard-interactive` authentication now supported. `SSHClient#authPassword()` attempts to use it as a fallback by default. -+ An interface has been introduced for observing progress of file transfers (`TransferListener`) which can be registered with any `FileTransfer` implementation (i.e. `SCPFileTransfer`; `SFTPFileTransfer`). +# THIS CHANGELOG IS NO LONGER MAINTAINED + +version 0.9.0 +----------------------- + ++ Throw `IllegalStateException` for sanity-checking instead of assert statements inside `SSHClient`. (GH-89) ++ Use debug rather than info logging when failing to load keys from a location in `sshClient.authPublickey(user, locations...)`. (GH-84) ++ Possibility of `ArrayIndexOutOfBoundsException` on `channelOutputStream.write()`. (GH-99, GH-104) ++ Add 'unconfirmed writes' feature to `RemoteFileOutputStream`, allowing for major speedups in SFTP upload (should be at least 2x, ymmv). This is brought to you by a new parameter in the `RemoteFileOutputStream` constructor called `maxUnconfirmedWrites`, which is utilised by `sftpFileTransfer.upload()` with a default value of 16. (GH-97) ++ We were missing a socket flush during the initial SSH banner exchange. ++ Transport/Connection/SFTP layer timeout methods are now millisecond granularity. `getTimeout()`/`setTimeout()` are called `getTimeoutMs()`/`setTimeoutMs()` respectively. ++ Simplified the `UserAuth.authenticate(..)` interface by making it one-method-at-time, with the trial and error business happening in `SSHClient`. ++ Added `UserAuth.getAllowedMethods()`. (GH-106) ++ `StatefulSFTPClient.cd()` should not update internal cwd state if stat fails. (GH-90) ++ Potential visibility issue on some channel request info received from server like exit status. (GH-114) ++ Dependency version updates. + +version 0.8.1 +-------------- + ++ Made logs less chatty by changing some info logging to be debug logging. (GH-80) ++ Regex pattern matching for password prompt in `PasswordResponseProvider`. (GH-77) ++ `AbstractChannel.close()` should be no-op if the channel is already closed. (GH-53?) + +version 0.8.0 +-------------- + ++ Make `sshClient.disconnect()` no-op if already disconnected / never connected (GH-67). ++ Set default tty to `vt100` for shell sessions. ++ Much improved `TransferListener` interface that supports immutable implementation, however as it is signfiicantly different any overridden impl will break. ++ Fix for remote max packet size when greater than MAX_INT being treated as -1. (GH-57) ++ Avoid string concat in various logging statements. ++ `sftpClient.mkdirs()` will not attempt to create the rightmost child 2x if there was a trailing separator in path. ++ Fix for infinite loop in buffer allocation. (GH-72) ++ `SFTPFileTransfer` now has a preference for whether attributes should be preserved. (GH-42) + +version 0.7.0 +-------------- + ++ `OpenSSHKnownHosts` re-implemented to better support the format seen in the wild, e.g. optional markers. (GH-41) ++ `SocketClient` made public so that SSHClient can be mocked for testing. ++ Publish sources jar. (GH-37) ++ Fixed typo on `SFTPClient.getFileTansfer()` ++ Removed deprecated methods on `Session.Command`, `getOutputAsString()` and `getErrorAsString()`. ++ Window adjustments were being logged incorrectly, fixed. ++ Fix a condition where `ChannelOutputStream` writes or flushes may wrongly block sitting around waiting for window adjustments where none was required. Issue was observed with non-OpenSSH servers like dropbear and WinSSHD. (GH-47) ++ Fix for using sshj in OSGi. (GH-50) ++ Local port forwarding - there was no way to cleanly close the server socket. (GH-26) + +version 0.6.1 +-------------- + ++ Race condition in `AbstractChannel` channel requests (0.6.0 regression). (GH-36) + +version 0.6.0 +-------------- + ++ Fixed deadlock condition in `AbstractChannel`. (GH-27) ++ `StatefulSFTPClient` doesn't cwdify all commands. (GH-28) ++ Fixed bug in SFTP `FileMode` for AIX/Unix directory mask. (GH-31) ++ The option to use an 'upload filter' is back in `SCPUploadClient`. (GH-34) + +version 0.5.0 +-------------- + ++ In case of `publickey` authentication using a string rather than a file, prevent private key data from leaking in logs / on authentication exception. (GH-20) ++ SessionChannel#changeWindowDimensions was broken. (GH-21) ++ Prevent occasional spurious NPE when disconnecting at AbstractDirectChannel#notifyError. ++ SSHClient implements Closeable. ++ OSGi-fication. (GH-22) + +version 0.4.1 +--------------- + ++ Intermittent key exchange failures. (GH-18) ++ Support for `publickey` authentication from strings. (GH-16) + +version 0.4.0 +----------------------- + ++ `DisconnectListener` callback. ++ `FileTransfer` interface refactored. Local source and destination paths can be any implementation of `LocalSourceFile` and `LocalDestFile`, respectively. ++ Bug in case of SCP remote path having spaces fixed. ++ Deprecated `Command#getOutputAsString()` and `Command#getErrorAsString()` -- recommend using `IOUtils#pipeStream(..)` instead. ++ `StreamCopier` interface updated, now uses builder pattern. `start()` to spawn, `copy()` to do it in current thread and block. ++ Possible to specify an alternate path separator (for Windows SFTP servers). ++ Several internal refactorings that make the library nicer... + +version 0.3.1 +----------------------- + ++ stderr `ChannelInputStream` gets correctly notified of errors e.g. at the transport layer. ++ Added a `channel.join(timeout)` variant. ++ An alternate `AndroidConfig` to initialize `SSHClient` with on Android 2.3+ was added, which uses `JCERandom` instead of `BouncyCastleRandom`. ++ In SCP upload, detect when destination directory does not exist. This was previously detected as a warning (well, technically it is sent as one...) but should truly be an error. All SCP 'warnings' now treated as errors. ++ Bug with `StatefulSFTPClient#put` fixed - was doing a get instead of a put! ++ `SessionChannel` reuse now gets an explicit runtime error. + +version 0.3.0 +----------------------- + ++ `channel.close()` method no longer called implicitly on disconnecting, because this is error prone. See updated examples. ++ Logging fix: enable filtering, previously due to misconfiguration this was hard to do. ++ Don't barf when a server sends more `CHANNEL_DATA` than announced. Now there is no exception in this case, but still only as much data as announced is consumed. ++ Client was still identifying as `SSHJ_0_1` -- changed to `SSHJ_0_3`. ++ Support for SFTP versions less than 3. ++ Host based authentication - see `net.schmizz.sshj.userauth.method.AuthHostbased`; pass an instance to `SSHClient.auth()` to use. ++ Added `Channel.join()` to allow blocking on channel close event. Useful e.g. when waiting for a command to exit. ++ Various code cleanups. + +version 0.2.3 +-------------- + ++ In 0.2.0 `DefaultModeGetter` and `DeaultModeSetter` started throwing exception when permissions couldn't be retrieved/assigned, and this was problematic on windows so the exception has been replaced with a log message. + +version 0.2.0 +-------------- + ++ Now compiled with compiler source and target level = 6 -- JRE 6+ is required! Always was, just more explicit now. ++ New methods in `SFTPClient`: checking if a file/directory exists (`statExistence()` -- returns `null` on file not found); recursively create directories (`mkdirs()`). ++ Bug with SFTP directory listing being truncated fixed. ++ Timestamps and permissions are now preserved by default when transferring with SCP or SFTP. A bug which prevented even using the `ModeGetter` or `ModeSetter` interface for this purpose has been quashed. ++ `keyboard-interactive` authentication now supported. `SSHClient#authPassword()` attempts to use it as a fallback by default. ++ An interface has been introduced for observing progress of file transfers (`TransferListener`) which can be registered with any `FileTransfer` implementation (i.e. `SCPFileTransfer`; `SFTPFileTransfer`). + Various bugfixes and improvements. \ No newline at end of file