Updated Changelog (markdown)

shikhar
2014-09-18 06:46:08 -07:00
parent ae3dbaf64b
commit c6f6d1f36c

@@ -1,125 +1,125 @@
# NO LONGER MAINTAINED # THIS CHANGELOG IS NO LONGER MAINTAINED
version 0.9.0 version 0.9.0
----------------------- -----------------------
+ Throw `IllegalStateException` for sanity-checking instead of assert statements inside `SSHClient`. (GH-89) + 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) + 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) + 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) + 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. + 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. + 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`. + 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) + Added `UserAuth.getAllowedMethods()`. (GH-106)
+ `StatefulSFTPClient.cd()` should not update internal cwd state if stat fails. (GH-90) + `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) + Potential visibility issue on some channel request info received from server like exit status. (GH-114)
+ Dependency version updates. + Dependency version updates.
version 0.8.1 version 0.8.1
-------------- --------------
+ Made logs less chatty by changing some info logging to be debug logging. (GH-80) + 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) + Regex pattern matching for password prompt in `PasswordResponseProvider`. (GH-77)
+ `AbstractChannel.close()` should be no-op if the channel is already closed. (GH-53?) + `AbstractChannel.close()` should be no-op if the channel is already closed. (GH-53?)
version 0.8.0 version 0.8.0
-------------- --------------
+ Make `sshClient.disconnect()` no-op if already disconnected / never connected (GH-67). + Make `sshClient.disconnect()` no-op if already disconnected / never connected (GH-67).
+ Set default tty to `vt100` for shell sessions. + 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. + 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) + Fix for remote max packet size when greater than MAX_INT being treated as -1. (GH-57)
+ Avoid string concat in various logging statements. + 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. + `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) + Fix for infinite loop in buffer allocation. (GH-72)
+ `SFTPFileTransfer` now has a preference for whether attributes should be preserved. (GH-42) + `SFTPFileTransfer` now has a preference for whether attributes should be preserved. (GH-42)
version 0.7.0 version 0.7.0
-------------- --------------
+ `OpenSSHKnownHosts` re-implemented to better support the format seen in the wild, e.g. optional markers. (GH-41) + `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. + `SocketClient` made public so that SSHClient can be mocked for testing.
+ Publish sources jar. (GH-37) + Publish sources jar. (GH-37)
+ Fixed typo on `SFTPClient.getFileTansfer()` + Fixed typo on `SFTPClient.getFileTansfer()`
+ Removed deprecated methods on `Session.Command`, `getOutputAsString()` and `getErrorAsString()`. + Removed deprecated methods on `Session.Command`, `getOutputAsString()` and `getErrorAsString()`.
+ Window adjustments were being logged incorrectly, fixed. + 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 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) + Fix for using sshj in OSGi. (GH-50)
+ Local port forwarding - there was no way to cleanly close the server socket. (GH-26) + Local port forwarding - there was no way to cleanly close the server socket. (GH-26)
version 0.6.1 version 0.6.1
-------------- --------------
+ Race condition in `AbstractChannel` channel requests (0.6.0 regression). (GH-36) + Race condition in `AbstractChannel` channel requests (0.6.0 regression). (GH-36)
version 0.6.0 version 0.6.0
-------------- --------------
+ Fixed deadlock condition in `AbstractChannel`. (GH-27) + Fixed deadlock condition in `AbstractChannel`. (GH-27)
+ `StatefulSFTPClient` doesn't cwdify all commands. (GH-28) + `StatefulSFTPClient` doesn't cwdify all commands. (GH-28)
+ Fixed bug in SFTP `FileMode` for AIX/Unix directory mask. (GH-31) + 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) + The option to use an 'upload filter' is back in `SCPUploadClient`. (GH-34)
version 0.5.0 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) + 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) + SessionChannel#changeWindowDimensions was broken. (GH-21)
+ Prevent occasional spurious NPE when disconnecting at AbstractDirectChannel#notifyError. + Prevent occasional spurious NPE when disconnecting at AbstractDirectChannel#notifyError.
+ SSHClient implements Closeable. + SSHClient implements Closeable.
+ OSGi-fication. (GH-22) + OSGi-fication. (GH-22)
version 0.4.1 version 0.4.1
--------------- ---------------
+ Intermittent key exchange failures. (GH-18) + Intermittent key exchange failures. (GH-18)
+ Support for `publickey` authentication from strings. (GH-16) + Support for `publickey` authentication from strings. (GH-16)
version 0.4.0 version 0.4.0
----------------------- -----------------------
+ `DisconnectListener` callback. + `DisconnectListener` callback.
+ `FileTransfer` interface refactored. Local source and destination paths can be any implementation of `LocalSourceFile` and `LocalDestFile`, respectively. + `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. + Bug in case of SCP remote path having spaces fixed.
+ Deprecated `Command#getOutputAsString()` and `Command#getErrorAsString()` -- recommend using `IOUtils#pipeStream(..)` instead. + 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. + `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). + Possible to specify an alternate path separator (for Windows SFTP servers).
+ Several internal refactorings that make the library nicer... + Several internal refactorings that make the library nicer...
version 0.3.1 version 0.3.1
----------------------- -----------------------
+ stderr `ChannelInputStream` gets correctly notified of errors e.g. at the transport layer. + stderr `ChannelInputStream` gets correctly notified of errors e.g. at the transport layer.
+ Added a `channel.join(timeout)` variant. + 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`. + 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. + 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! + Bug with `StatefulSFTPClient#put` fixed - was doing a get instead of a put!
+ `SessionChannel` reuse now gets an explicit runtime error. + `SessionChannel` reuse now gets an explicit runtime error.
version 0.3.0 version 0.3.0
----------------------- -----------------------
+ `channel.close()` method no longer called implicitly on disconnecting, because this is error prone. See updated examples. + `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. + 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. + 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`. + Client was still identifying as `SSHJ_0_1` -- changed to `SSHJ_0_3`.
+ Support for SFTP versions less than 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. + 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. + Added `Channel.join()` to allow blocking on channel close event. Useful e.g. when waiting for a command to exit.
+ Various code cleanups. + Various code cleanups.
version 0.2.3 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. + 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 version 0.2.0
-------------- --------------
+ Now compiled with compiler source and target level = 6 -- JRE 6+ is required! Always was, just more explicit now. + 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()`). + 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. + 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. + 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. + `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`). + 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. + Various bugfixes and improvements.