mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 15:20:54 +03:00
Updated Changelog (markdown)
248
Changelog.md
248
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.
|
||||
Reference in New Issue
Block a user