Path to this page:
Subject: CVS commit: pkgsrc/security/py-asyncssh
From: Adam Ciarcinski
Date: 2019-12-01 12:45:35
Message id: 20191201114535.77CDAFA97@cvs.NetBSD.org
Log Message:
py-asyncssh: updated to 2.1.0
Release 2.1.0:
Added support in the SSHProcess redirect mechanism to accept asyncio \
StreamReader and StreamWriter objects, allowing asyncio streams to be plugged in \
as stdin/stdout/stderr in an SSHProcess.
Added support for key handlers in the AsyncSSH line editor to trigger signals \
being delivered when certain “hot keys” are hit while reading input.
Improved cleanup of unreturned connection objects when an error occurs or the \
connection request is canceled or times out.
Improved cleanup of SSH agent client objects to avoid triggering a false \
positive warning in Python 3.8.
Added an example to the documentation for how to create reverse-direction SSH \
client and server connections.
Made check of session objects against None explicit to avoid confusion on \
user-defined sessions that implement __len__ or __bool__.
Release 2.0.1:
Some API changes which should have been included in the 2.0.0 release were \
missed. This release corrects that, but means that additional changes may be \
needed in applications moving to 2.0.1. This should hopefully be the last of \
such changes, but if any other issues are discovered, additional changes will be \
limited to 2.0.x patch releases and the API will stabilize again in the AsyncSSH \
2.1 release. See the next bullet for details about the additional incompatible \
change.
To be consistent with other connect and listen functions, all methods on \
SSHClientConnection which previously returned None on listen failures have been \
changed to raise an exception instead. A new ChannelListenError exception will \
now be raised when an SSH server returns failure on a request to open a remote \
listener. This change affects the following SSHClientConnection methods: \
create_server, create_unix_server, start_server, start_unix_server, \
forward_remote_port, and forward_remote_path.
Restored the ability for SSHListener objects to be used as async context \
managers. This previously worked in AsyncSSH 1.x and was unintentionally broken \
in AsyncSSH 2.0.0.
Added support for a number of additional functions to be called from within an \
“async with” statement. These functions already returned objects capable of \
being async context managers, but were not decorated to allow them to be \
directly called from within “async with”. This change applies to the top \
level functions create_server, listen, and listen_reverse and the \
SSHClientConnection methods create_server, create_unix_server, start_server, \
start_unix_server, forward_local_port, forward_local_path, forward_remote_port, \
forward_remote_path, listen_ssh, and listen_reverse_ssh,
Fixed a couple of issues in loading OpenSSH-format certificates which were \
missing a trailing newline.
Changed load_certificates() to allow multiple certificates to be loaded from a \
single byte string argument, making it more consistent with how \
load_certificates() works when reading from a file.
Release 2.0.0:
NEW MAJOR VERSION: See below for potentially incompatible changes.
Updated AsyncSSH to use the modern async/await syntax internally, now requiring \
Python 3.6 or later. Those wishing to use AsyncSSH on Python 3.4 or 3.5 should \
stick to the AsyncSSH 1.x releases.
Changed first argument of SFTPServer constructor from an SSHServerConnection \
(conn) to an SSHServerChannel (chan) to allow custom SFTP server implementations \
to access environment variables set on the channel that SFTP is run over. \
Applications which subclass the SFTPServer class and implement an __init__ \
method will need to be updated to account for this change and pass the new \
argument through to the SFTPServer parent class. If the subclass has no __init__ \
and just uses the connection, channel, and env properties of SFTPServer to \
access this information, no changes should be required.
Removed deprecated “session_encoding” and “session_errors” arguments \
from create_server() and listen() functions. These arguments were renamed to \
“encoding” and “errors” back in version 1.16.0 to be consistent with \
other AsyncSSH APIs.
Removed get_environment(), get_command(), and get_subsystem() methods on \
SSHServerProcess class. This information was made available as “env”, \
“command”, and “subsystem” properties of SSHServerProcess in AsyncSSH \
1.11.0.
Removed optional loop argument from all public AsyncSSH APIs, consistent with \
the deprecation of this argument in the asyncio package in Python 3.8. Calls \
will now always use the event loop which is active at the time of the call.
Removed support for non-async context managers on AsyncSSH connections and \
processes and SFTP client connections and file objects. Callers should use \
“async with” to invoke the async the context managers on these objects.
Added support for SSHAgentClient being an async context manager. To be \
consistent with other connect calls, connect_agent() will now raise an exception \
when no agent is found or a connection failure occurs, rather than logging a \
warning and returning None. Callers should catch OSError or ChannelOpenError \
exceptions rather than looking for a return value of None when calling this \
function.
Added set_input() and clear_input() methods on SSHLineEditorChannel to change \
the value of the current input line when line editing is enabled.
Added is_closing() method to the SSHChannel, SSHProcess, SSHWriter, and \
SSHSubprocessTransport classes. mirroring the asyncio BaseTransport and \
StreamWriter methods added in Python 3.7.
Added wait_closed() async method to the SSHWriter class, mirroring the asyncio \
StreamWriter method added in Python 3.7.
Files: