summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJeremy T. Bouse <jbouse@debian.org>2009-11-27 16:25:55 -0500
committerJeremy T. Bouse <jbouse@debian.org>2009-11-27 16:28:36 -0500
commitf7b892905c62b94a6e54d115ee2d6d32d66af013 (patch)
treee98e4d71f62f37a514363fa35fff57390fab934e /docs
parente01182b1e91d796245e90e484d46416e52d8fd7d (diff)
downloadpython-paramiko-f7b892905c62b94a6e54d115ee2d6d32d66af013.tar
python-paramiko-f7b892905c62b94a6e54d115ee2d6d32d66af013.tar.gz
Imported Upstream version 1.7.6
Closes: #543784
Diffstat (limited to 'docs')
-rw-r--r--docs/api-objects.txt96
-rw-r--r--docs/bug-index.html2
-rw-r--r--docs/class-tree.html9
-rw-r--r--docs/help.html2
-rw-r--r--docs/identifier-index.html607
-rw-r--r--docs/module-tree.html2
-rw-r--r--docs/paramiko-module.html8
-rw-r--r--docs/paramiko-pysrc.html54
-rw-r--r--docs/paramiko.Agent-class.html2
-rw-r--r--docs/paramiko.AgentKey-class.html7
-rw-r--r--docs/paramiko.AuthenticationException-class.html11
-rw-r--r--docs/paramiko.AutoAddPolicy-class.html7
-rw-r--r--docs/paramiko.BadAuthenticationType-class.html11
-rw-r--r--docs/paramiko.BadHostKeyException-class.html11
-rw-r--r--docs/paramiko.BufferedFile-class.html7
-rw-r--r--docs/paramiko.Channel-class.html7
-rw-r--r--docs/paramiko.ChannelException-class.html11
-rw-r--r--docs/paramiko.DSSKey-class.html7
-rw-r--r--docs/paramiko.HostKeys-class.html2
-rw-r--r--docs/paramiko.Message-class.html7
-rw-r--r--docs/paramiko.MissingHostKeyPolicy-class.html7
-rw-r--r--docs/paramiko.PKey-class.html7
-rw-r--r--docs/paramiko.PasswordRequiredException-class.html11
-rw-r--r--docs/paramiko.RSAKey-class.html7
-rw-r--r--docs/paramiko.RejectPolicy-class.html7
-rw-r--r--docs/paramiko.SFTP-class.html7
-rw-r--r--docs/paramiko.SFTPAttributes-class.html7
-rw-r--r--docs/paramiko.SFTPClient-class.html10
-rw-r--r--docs/paramiko.SFTPError-class.html11
-rw-r--r--docs/paramiko.SFTPFile-class.html7
-rw-r--r--docs/paramiko.SFTPHandle-class.html7
-rw-r--r--docs/paramiko.SFTPServer-class.html13
-rw-r--r--docs/paramiko.SFTPServerInterface-class.html7
-rw-r--r--docs/paramiko.SSHClient-class.html7
-rw-r--r--docs/paramiko.SSHConfig-class.html19
-rw-r--r--docs/paramiko.SSHException-class.html11
-rw-r--r--docs/paramiko.SecurityOptions-class.html7
-rw-r--r--docs/paramiko.ServerInterface-class.html7
-rw-r--r--docs/paramiko.SubsystemHandler-class.html13
-rw-r--r--docs/paramiko.Transport-class.html13
-rw-r--r--docs/paramiko.WarningPolicy-class.html7
-rw-r--r--docs/paramiko.agent-module.html9
-rw-r--r--docs/paramiko.agent-pysrc.html40
-rw-r--r--docs/paramiko.auth_handler-module.html9
-rw-r--r--docs/paramiko.auth_handler-pysrc.html128
-rw-r--r--docs/paramiko.ber-module.html18
-rw-r--r--docs/paramiko.ber-pysrc.html58
-rw-r--r--docs/paramiko.ber.BER-class.html7
-rw-r--r--docs/paramiko.ber.BERException-class.html11
-rw-r--r--docs/paramiko.buffered_pipe-module.html18
-rw-r--r--docs/paramiko.buffered_pipe-pysrc.html46
-rw-r--r--docs/paramiko.buffered_pipe.BufferedPipe-class.html7
-rw-r--r--docs/paramiko.buffered_pipe.PipeTimeout-class.html15
-rw-r--r--docs/paramiko.channel-module.html9
-rw-r--r--docs/paramiko.channel-pysrc.html2276
-rw-r--r--docs/paramiko.channel.ChannelStderrFile-class.html7
-rw-r--r--docs/paramiko.client-module.html16
-rw-r--r--docs/paramiko.client-pysrc.html974
-rw-r--r--docs/paramiko.common-module.html9
-rw-r--r--docs/paramiko.common-pysrc.html46
-rw-r--r--docs/paramiko.compress-module.html18
-rw-r--r--docs/paramiko.compress-pysrc.html38
-rw-r--r--docs/paramiko.compress.ZlibCompressor-class.html7
-rw-r--r--docs/paramiko.compress.ZlibDecompressor-class.html7
-rw-r--r--docs/paramiko.config-module.html18
-rw-r--r--docs/paramiko.config-pysrc.html137
-rw-r--r--docs/paramiko.dsskey-module.html9
-rw-r--r--docs/paramiko.dsskey-pysrc.html118
-rw-r--r--docs/paramiko.file-module.html18
-rw-r--r--docs/paramiko.file-pysrc.html106
-rw-r--r--docs/paramiko.hostkeys-module.html9
-rw-r--r--docs/paramiko.hostkeys-pysrc.html559
-rw-r--r--docs/paramiko.hostkeys.HostKeyEntry-class.html2
-rw-r--r--docs/paramiko.kex_gex-module.html9
-rw-r--r--docs/paramiko.kex_gex-pysrc.html136
-rw-r--r--docs/paramiko.kex_gex.KexGex-class.html7
-rw-r--r--docs/paramiko.kex_group1-module.html9
-rw-r--r--docs/paramiko.kex_group1-pysrc.html116
-rw-r--r--docs/paramiko.kex_group1.KexGroup1-class.html7
-rw-r--r--docs/paramiko.logging22-module.html9
-rw-r--r--docs/paramiko.logging22-pysrc.html38
-rw-r--r--docs/paramiko.logging22.Formatter-class.html7
-rw-r--r--docs/paramiko.logging22.StreamHandler-class.html7
-rw-r--r--docs/paramiko.logging22.logger-class.html7
-rw-r--r--docs/paramiko.message-module.html18
-rw-r--r--docs/paramiko.message-pysrc.html40
-rw-r--r--docs/paramiko.packet-module.html9
-rw-r--r--docs/paramiko.packet-pysrc.html102
-rw-r--r--docs/paramiko.packet.NeedRekeyException-class.html11
-rw-r--r--docs/paramiko.pipe-module.html18
-rw-r--r--docs/paramiko.pipe-pysrc.html44
-rw-r--r--docs/paramiko.pipe.OrPipe-class.html7
-rw-r--r--docs/paramiko.pipe.PosixPipe-class.html7
-rw-r--r--docs/paramiko.pipe.WindowsPipe-class.html7
-rw-r--r--docs/paramiko.pkey-module.html9
-rw-r--r--docs/paramiko.pkey-pysrc.html154
-rw-r--r--docs/paramiko.primes-module.html18
-rw-r--r--docs/paramiko.primes-pysrc.html82
-rw-r--r--docs/paramiko.primes.ModulusPack-class.html7
-rw-r--r--docs/paramiko.resource-module.html9
-rw-r--r--docs/paramiko.resource-pysrc.html44
-rw-r--r--docs/paramiko.rng-module.html9
-rw-r--r--docs/paramiko.rng-pysrc.html66
-rw-r--r--docs/paramiko.rng.StrongLockingRandomPool-class.html7
-rw-r--r--docs/paramiko.rng_posix-module.html18
-rw-r--r--docs/paramiko.rng_posix-pysrc.html70
-rw-r--r--docs/paramiko.rng_posix.error-class.html11
-rw-r--r--docs/paramiko.rng_win32-module.html18
-rw-r--r--docs/paramiko.rng_win32-pysrc.html148
-rw-r--r--docs/paramiko.rng_win32.error-class.html11
-rw-r--r--docs/paramiko.rsakey-module.html9
-rw-r--r--docs/paramiko.rsakey-pysrc.html110
-rw-r--r--docs/paramiko.server-module.html9
-rw-r--r--docs/paramiko.server-pysrc.html43
-rw-r--r--docs/paramiko.sftp-module.html9
-rw-r--r--docs/paramiko.sftp-pysrc.html70
-rw-r--r--docs/paramiko.sftp_attr-module.html9
-rw-r--r--docs/paramiko.sftp_attr-pysrc.html50
-rw-r--r--docs/paramiko.sftp_client-module.html9
-rw-r--r--docs/paramiko.sftp_client-pysrc.html1585
-rw-r--r--docs/paramiko.sftp_file-module.html9
-rw-r--r--docs/paramiko.sftp_file-pysrc.html95
-rw-r--r--docs/paramiko.sftp_handle-module.html9
-rw-r--r--docs/paramiko.sftp_handle-pysrc.html44
-rw-r--r--docs/paramiko.sftp_server-module.html9
-rw-r--r--docs/paramiko.sftp_server-pysrc.html398
-rw-r--r--docs/paramiko.sftp_si-module.html9
-rw-r--r--docs/paramiko.sftp_si-pysrc.html43
-rw-r--r--docs/paramiko.ssh_exception-module.html18
-rw-r--r--docs/paramiko.ssh_exception-pysrc.html44
-rw-r--r--docs/paramiko.ssh_exception.PartialAuthentication-class.html11
-rw-r--r--docs/paramiko.transport-module.html9
-rw-r--r--docs/paramiko.transport-pysrc.html4392
-rw-r--r--docs/paramiko.transport.ChannelMap-class.html7
-rw-r--r--docs/paramiko.util-module.html17
-rw-r--r--docs/paramiko.util-pysrc.html564
-rw-r--r--docs/paramiko.util.Counter-class.html258
-rw-r--r--docs/paramiko.util.PFilter-class.html7
-rw-r--r--docs/paramiko.util.enumerate-class.html2
-rw-r--r--docs/paramiko.win_pageant-module.html9
-rw-r--r--docs/paramiko.win_pageant-pysrc.html68
-rw-r--r--docs/paramiko.win_pageant.PageantConnection-class.html7
-rw-r--r--docs/redirect.html2
-rw-r--r--docs/since-index.html2
-rw-r--r--docs/toc-everything.html13
-rw-r--r--docs/toc-paramiko.ber-module.html1
-rw-r--r--docs/toc-paramiko.buffered_pipe-module.html1
-rw-r--r--docs/toc-paramiko.compress-module.html1
-rw-r--r--docs/toc-paramiko.config-module.html1
-rw-r--r--docs/toc-paramiko.file-module.html1
-rw-r--r--docs/toc-paramiko.logging22-module.html3
-rw-r--r--docs/toc-paramiko.message-module.html1
-rw-r--r--docs/toc-paramiko.pipe-module.html1
-rw-r--r--docs/toc-paramiko.primes-module.html1
-rw-r--r--docs/toc-paramiko.rng_posix-module.html1
-rw-r--r--docs/toc-paramiko.rng_win32-module.html4
-rw-r--r--docs/toc-paramiko.ssh_exception-module.html1
-rw-r--r--docs/toc-paramiko.util-module.html6
-rw-r--r--docs/toc-paramiko.win_pageant-module.html3
159 files changed, 8117 insertions, 6965 deletions
diff --git a/docs/api-objects.txt b/docs/api-objects.txt
index 5ef02ce..70270dc 100644
--- a/docs/api-objects.txt
+++ b/docs/api-objects.txt
@@ -1,4 +1,5 @@
paramiko paramiko-module.html
+paramiko.__package__ paramiko-module.html#__package__
paramiko.__license__ paramiko-module.html#__license__
paramiko.__version_info__ paramiko-module.html#__version_info__
paramiko.__author__ paramiko-module.html#__author__
@@ -7,6 +8,7 @@ paramiko.agent paramiko.agent-module.html
paramiko.agent.SSH2_AGENT_IDENTITIES_ANSWER paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER
paramiko.agent.SSH2_AGENTC_REQUEST_IDENTITIES paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES
paramiko.agent.SSH2_AGENTC_SIGN_REQUEST paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST
+paramiko.agent.__package__ paramiko.agent-module.html#__package__
paramiko.agent.SSH2_AGENT_SIGN_RESPONSE paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE
paramiko.auth_handler paramiko.auth_handler-module.html
paramiko.auth_handler.AUTH_SUCCESSFUL paramiko.auth_handler-module.html#AUTH_SUCCESSFUL
@@ -26,7 +28,7 @@ paramiko.auth_handler.AUTH_FAILED paramiko.auth_handler-module.html#AUTH_FAILED
paramiko.auth_handler.MSG_CHANNEL_SUCCESS paramiko.auth_handler-module.html#MSG_CHANNEL_SUCCESS
paramiko.auth_handler.MSG_USERAUTH_FAILURE paramiko.auth_handler-module.html#MSG_USERAUTH_FAILURE
paramiko.auth_handler.MSG_REQUEST_FAILURE paramiko.auth_handler-module.html#MSG_REQUEST_FAILURE
-paramiko.auth_handler.randpool paramiko.auth_handler-module.html#randpool
+paramiko.auth_handler.__package__ paramiko.auth_handler-module.html#__package__
paramiko.auth_handler.MSG_CHANNEL_DATA paramiko.auth_handler-module.html#MSG_CHANNEL_DATA
paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL paramiko.auth_handler-module.html#AUTH_PARTIALLY_SUCCESSFUL
paramiko.auth_handler.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.auth_handler-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -54,12 +56,15 @@ paramiko.auth_handler.MSG_SERVICE_REQUEST paramiko.auth_handler-module.html#MSG_
paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA paramiko.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.auth_handler.MSG_CHANNEL_CLOSE paramiko.auth_handler-module.html#MSG_CHANNEL_CLOSE
paramiko.auth_handler.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.auth_handler-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.auth_handler.randpool paramiko.auth_handler-module.html#randpool
paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.auth_handler.MSG_CHANNEL_EOF paramiko.auth_handler-module.html#MSG_CHANNEL_EOF
paramiko.auth_handler.MSG_USERAUTH_SUCCESS paramiko.auth_handler-module.html#MSG_USERAUTH_SUCCESS
paramiko.auth_handler.CONNECTION_FAILED_CODE paramiko.auth_handler-module.html#CONNECTION_FAILED_CODE
paramiko.ber paramiko.ber-module.html
+paramiko.ber.__package__ paramiko.ber-module.html#__package__
paramiko.buffered_pipe paramiko.buffered_pipe-module.html
+paramiko.buffered_pipe.__package__ paramiko.buffered_pipe-module.html#__package__
paramiko.channel paramiko.channel-module.html
paramiko.channel.AUTH_SUCCESSFUL paramiko.channel-module.html#AUTH_SUCCESSFUL
paramiko.channel.MSG_KEXINIT paramiko.channel-module.html#MSG_KEXINIT
@@ -78,7 +83,7 @@ paramiko.channel.MSG_CHANNEL_SUCCESS paramiko.channel-module.html#MSG_CHANNEL_SU
paramiko.channel.MSG_USERAUTH_FAILURE paramiko.channel-module.html#MSG_USERAUTH_FAILURE
paramiko.channel.MSG_REQUEST_FAILURE paramiko.channel-module.html#MSG_REQUEST_FAILURE
paramiko.channel.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.channel-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
-paramiko.channel.randpool paramiko.channel-module.html#randpool
+paramiko.channel.__package__ paramiko.channel-module.html#__package__
paramiko.channel.MSG_CHANNEL_DATA paramiko.channel-module.html#MSG_CHANNEL_DATA
paramiko.channel.CRITICAL paramiko.channel-module.html#CRITICAL
paramiko.channel.MSG_IGNORE paramiko.channel-module.html#MSG_IGNORE
@@ -107,6 +112,7 @@ paramiko.channel.MSG_SERVICE_REQUEST paramiko.channel-module.html#MSG_SERVICE_RE
paramiko.channel.MSG_CHANNEL_EXTENDED_DATA paramiko.channel-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.channel.MSG_CHANNEL_CLOSE paramiko.channel-module.html#MSG_CHANNEL_CLOSE
paramiko.channel.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.channel-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.channel.randpool paramiko.channel-module.html#randpool
paramiko.channel.MSG_CHANNEL_OPEN_SUCCESS paramiko.channel-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.channel.MSG_CHANNEL_EOF paramiko.channel-module.html#MSG_CHANNEL_EOF
paramiko.channel.MSG_USERAUTH_SUCCESS paramiko.channel-module.html#MSG_USERAUTH_SUCCESS
@@ -120,9 +126,11 @@ paramiko.client.MSG_NAMES paramiko.client-module.html#MSG_NAMES
paramiko.client.MSG_REQUEST_FAILURE paramiko.client-module.html#MSG_REQUEST_FAILURE
paramiko.client.MSG_CHANNEL_OPEN paramiko.client-module.html#MSG_CHANNEL_OPEN
paramiko.client.MSG_SERVICE_REQUEST paramiko.client-module.html#MSG_SERVICE_REQUEST
+paramiko.client.__package__ paramiko.client-module.html#__package__
paramiko.client.MSG_DISCONNECT paramiko.client-module.html#MSG_DISCONNECT
paramiko.client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
paramiko.client.MSG_SERVICE_ACCEPT paramiko.client-module.html#MSG_SERVICE_ACCEPT
+paramiko.client.SSH_PORT paramiko.client-module.html#SSH_PORT
paramiko.client.MSG_IGNORE paramiko.client-module.html#MSG_IGNORE
paramiko.client.WARNING paramiko.client-module.html#WARNING
paramiko.client.MSG_GLOBAL_REQUEST paramiko.client-module.html#MSG_GLOBAL_REQUEST
@@ -178,7 +186,7 @@ paramiko.common.MSG_USERAUTH_INFO_RESPONSE paramiko.common-module.html#MSG_USERA
paramiko.common.MSG_CHANNEL_SUCCESS paramiko.common-module.html#MSG_CHANNEL_SUCCESS
paramiko.common.MSG_USERAUTH_FAILURE paramiko.common-module.html#MSG_USERAUTH_FAILURE
paramiko.common.MSG_REQUEST_FAILURE paramiko.common-module.html#MSG_REQUEST_FAILURE
-paramiko.common.randpool paramiko.common-module.html#randpool
+paramiko.common.__package__ paramiko.common-module.html#__package__
paramiko.common.MSG_CHANNEL_DATA paramiko.common-module.html#MSG_CHANNEL_DATA
paramiko.common.CRITICAL paramiko.common-module.html#CRITICAL
paramiko.common.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.common-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -207,12 +215,15 @@ paramiko.common.AUTH_FAILED paramiko.common-module.html#AUTH_FAILED
paramiko.common.MSG_CHANNEL_EXTENDED_DATA paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.common.MSG_CHANNEL_CLOSE paramiko.common-module.html#MSG_CHANNEL_CLOSE
paramiko.common.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.common.randpool paramiko.common-module.html#randpool
paramiko.common.MSG_CHANNEL_OPEN_SUCCESS paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.common.MSG_CHANNEL_EOF paramiko.common-module.html#MSG_CHANNEL_EOF
paramiko.common.MSG_USERAUTH_SUCCESS paramiko.common-module.html#MSG_USERAUTH_SUCCESS
paramiko.common.CONNECTION_FAILED_CODE paramiko.common-module.html#CONNECTION_FAILED_CODE
paramiko.compress paramiko.compress-module.html
+paramiko.compress.__package__ paramiko.compress-module.html#__package__
paramiko.config paramiko.config-module.html
+paramiko.config.__package__ paramiko.config-module.html#__package__
paramiko.dsskey paramiko.dsskey-module.html
paramiko.dsskey.AUTH_SUCCESSFUL paramiko.dsskey-module.html#AUTH_SUCCESSFUL
paramiko.dsskey.MSG_KEXINIT paramiko.dsskey-module.html#MSG_KEXINIT
@@ -231,7 +242,7 @@ paramiko.dsskey.MSG_GLOBAL_REQUEST paramiko.dsskey-module.html#MSG_GLOBAL_REQUES
paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE paramiko.dsskey-module.html#MSG_USERAUTH_INFO_RESPONSE
paramiko.dsskey.MSG_CHANNEL_SUCCESS paramiko.dsskey-module.html#MSG_CHANNEL_SUCCESS
paramiko.dsskey.MSG_USERAUTH_FAILURE paramiko.dsskey-module.html#MSG_USERAUTH_FAILURE
-paramiko.dsskey.randpool paramiko.dsskey-module.html#randpool
+paramiko.dsskey.__package__ paramiko.dsskey-module.html#__package__
paramiko.dsskey.MSG_CHANNEL_DATA paramiko.dsskey-module.html#MSG_CHANNEL_DATA
paramiko.dsskey.CRITICAL paramiko.dsskey-module.html#CRITICAL
paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.dsskey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -259,11 +270,13 @@ paramiko.dsskey.AUTH_FAILED paramiko.dsskey-module.html#AUTH_FAILED
paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA paramiko.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.dsskey.MSG_CHANNEL_CLOSE paramiko.dsskey-module.html#MSG_CHANNEL_CLOSE
paramiko.dsskey.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.dsskey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.dsskey.randpool paramiko.dsskey-module.html#randpool
paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.dsskey.MSG_CHANNEL_EOF paramiko.dsskey-module.html#MSG_CHANNEL_EOF
paramiko.dsskey.MSG_USERAUTH_SUCCESS paramiko.dsskey-module.html#MSG_USERAUTH_SUCCESS
paramiko.dsskey.CONNECTION_FAILED_CODE paramiko.dsskey-module.html#CONNECTION_FAILED_CODE
paramiko.file paramiko.file-module.html
+paramiko.file.__package__ paramiko.file-module.html#__package__
paramiko.hostkeys paramiko.hostkeys-module.html
paramiko.hostkeys.AUTH_SUCCESSFUL paramiko.hostkeys-module.html#AUTH_SUCCESSFUL
paramiko.hostkeys.MSG_KEXINIT paramiko.hostkeys-module.html#MSG_KEXINIT
@@ -281,7 +294,7 @@ paramiko.hostkeys.MSG_GLOBAL_REQUEST paramiko.hostkeys-module.html#MSG_GLOBAL_RE
paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE paramiko.hostkeys-module.html#MSG_USERAUTH_INFO_RESPONSE
paramiko.hostkeys.MSG_CHANNEL_SUCCESS paramiko.hostkeys-module.html#MSG_CHANNEL_SUCCESS
paramiko.hostkeys.MSG_USERAUTH_FAILURE paramiko.hostkeys-module.html#MSG_USERAUTH_FAILURE
-paramiko.hostkeys.randpool paramiko.hostkeys-module.html#randpool
+paramiko.hostkeys.__package__ paramiko.hostkeys-module.html#__package__
paramiko.hostkeys.MSG_CHANNEL_DATA paramiko.hostkeys-module.html#MSG_CHANNEL_DATA
paramiko.hostkeys.CRITICAL paramiko.hostkeys-module.html#CRITICAL
paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.hostkeys-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -311,6 +324,7 @@ paramiko.hostkeys.AUTH_FAILED paramiko.hostkeys-module.html#AUTH_FAILED
paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA paramiko.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.hostkeys.MSG_CHANNEL_CLOSE paramiko.hostkeys-module.html#MSG_CHANNEL_CLOSE
paramiko.hostkeys.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.hostkeys-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.hostkeys.randpool paramiko.hostkeys-module.html#randpool
paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.hostkeys.MSG_CHANNEL_EOF paramiko.hostkeys-module.html#MSG_CHANNEL_EOF
paramiko.hostkeys.CONNECTION_FAILED_CODE paramiko.hostkeys-module.html#CONNECTION_FAILED_CODE
@@ -332,7 +346,7 @@ paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE paramiko.kex_gex-module.html#MSG_USE
paramiko.kex_gex.MSG_CHANNEL_SUCCESS paramiko.kex_gex-module.html#MSG_CHANNEL_SUCCESS
paramiko.kex_gex.MSG_USERAUTH_FAILURE paramiko.kex_gex-module.html#MSG_USERAUTH_FAILURE
paramiko.kex_gex.MSG_REQUEST_FAILURE paramiko.kex_gex-module.html#MSG_REQUEST_FAILURE
-paramiko.kex_gex.randpool paramiko.kex_gex-module.html#randpool
+paramiko.kex_gex.__package__ paramiko.kex_gex-module.html#__package__
paramiko.kex_gex.MSG_CHANNEL_DATA paramiko.kex_gex-module.html#MSG_CHANNEL_DATA
paramiko.kex_gex.CRITICAL paramiko.kex_gex-module.html#CRITICAL
paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST_OLD
@@ -365,6 +379,7 @@ paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST paramiko.kex_gex-module.html#_MSG_KEXDH_
paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA paramiko.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.kex_gex.MSG_CHANNEL_CLOSE paramiko.kex_gex-module.html#MSG_CHANNEL_CLOSE
paramiko.kex_gex.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.kex_gex-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.kex_gex.randpool paramiko.kex_gex-module.html#randpool
paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.kex_gex.MSG_CHANNEL_EOF paramiko.kex_gex-module.html#MSG_CHANNEL_EOF
paramiko.kex_gex.MSG_USERAUTH_SUCCESS paramiko.kex_gex-module.html#MSG_USERAUTH_SUCCESS
@@ -389,7 +404,7 @@ paramiko.kex_group1.P paramiko.kex_group1-module.html#P
paramiko.kex_group1.MSG_CHANNEL_SUCCESS paramiko.kex_group1-module.html#MSG_CHANNEL_SUCCESS
paramiko.kex_group1.MSG_USERAUTH_FAILURE paramiko.kex_group1-module.html#MSG_USERAUTH_FAILURE
paramiko.kex_group1.MSG_REQUEST_FAILURE paramiko.kex_group1-module.html#MSG_REQUEST_FAILURE
-paramiko.kex_group1.randpool paramiko.kex_group1-module.html#randpool
+paramiko.kex_group1.__package__ paramiko.kex_group1-module.html#__package__
paramiko.kex_group1.MSG_CHANNEL_DATA paramiko.kex_group1-module.html#MSG_CHANNEL_DATA
paramiko.kex_group1.CRITICAL paramiko.kex_group1-module.html#CRITICAL
paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.kex_group1-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -419,6 +434,7 @@ paramiko.kex_group1.AUTH_FAILED paramiko.kex_group1-module.html#AUTH_FAILED
paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA paramiko.kex_group1-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.kex_group1.MSG_CHANNEL_CLOSE paramiko.kex_group1-module.html#MSG_CHANNEL_CLOSE
paramiko.kex_group1.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.kex_group1-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.kex_group1.randpool paramiko.kex_group1-module.html#randpool
paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.kex_group1.MSG_CHANNEL_EOF paramiko.kex_group1-module.html#MSG_CHANNEL_EOF
paramiko.kex_group1.MSG_USERAUTH_SUCCESS paramiko.kex_group1-module.html#MSG_USERAUTH_SUCCESS
@@ -427,11 +443,13 @@ paramiko.logging22 paramiko.logging22-module.html
paramiko.logging22.INFO paramiko.logging22-module.html#INFO
paramiko.logging22.WARNING paramiko.logging22-module.html#WARNING
paramiko.logging22._logger paramiko.logging22-module.html#_logger
+paramiko.logging22.__package__ paramiko.logging22-module.html#__package__
paramiko.logging22.getLogger paramiko.logging22-module.html#getLogger
paramiko.logging22.CRITICAL paramiko.logging22-module.html#CRITICAL
paramiko.logging22.ERROR paramiko.logging22-module.html#ERROR
paramiko.logging22.DEBUG paramiko.logging22-module.html#DEBUG
paramiko.message paramiko.message-module.html
+paramiko.message.__package__ paramiko.message-module.html#__package__
paramiko.packet paramiko.packet-module.html
paramiko.packet.AUTH_SUCCESSFUL paramiko.packet-module.html#AUTH_SUCCESSFUL
paramiko.packet.MSG_KEXINIT paramiko.packet-module.html#MSG_KEXINIT
@@ -452,7 +470,7 @@ paramiko.packet.MSG_CHANNEL_SUCCESS paramiko.packet-module.html#MSG_CHANNEL_SUCC
paramiko.packet.MSG_USERAUTH_FAILURE paramiko.packet-module.html#MSG_USERAUTH_FAILURE
paramiko.packet.compute_hmac paramiko.packet-module.html#compute_hmac
paramiko.packet.MSG_REQUEST_FAILURE paramiko.packet-module.html#MSG_REQUEST_FAILURE
-paramiko.packet.randpool paramiko.packet-module.html#randpool
+paramiko.packet.__package__ paramiko.packet-module.html#__package__
paramiko.packet.MSG_CHANNEL_DATA paramiko.packet-module.html#MSG_CHANNEL_DATA
paramiko.packet.CRITICAL paramiko.packet-module.html#CRITICAL
paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.packet-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -480,12 +498,14 @@ paramiko.packet.AUTH_FAILED paramiko.packet-module.html#AUTH_FAILED
paramiko.packet.MSG_CHANNEL_EXTENDED_DATA paramiko.packet-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.packet.MSG_CHANNEL_CLOSE paramiko.packet-module.html#MSG_CHANNEL_CLOSE
paramiko.packet.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.packet-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.packet.randpool paramiko.packet-module.html#randpool
paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS paramiko.packet-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.packet.MSG_CHANNEL_EOF paramiko.packet-module.html#MSG_CHANNEL_EOF
paramiko.packet.MSG_USERAUTH_SUCCESS paramiko.packet-module.html#MSG_USERAUTH_SUCCESS
paramiko.packet.CONNECTION_FAILED_CODE paramiko.packet-module.html#CONNECTION_FAILED_CODE
paramiko.pipe paramiko.pipe-module.html
paramiko.pipe.make_or_pipe paramiko.pipe-module.html#make_or_pipe
+paramiko.pipe.__package__ paramiko.pipe-module.html#__package__
paramiko.pipe.make_pipe paramiko.pipe-module.html#make_pipe
paramiko.pkey paramiko.pkey-module.html
paramiko.pkey.AUTH_SUCCESSFUL paramiko.pkey-module.html#AUTH_SUCCESSFUL
@@ -537,19 +557,25 @@ paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS paramiko.pkey-module.html#MSG_CHANNEL_OPE
paramiko.pkey.MSG_CHANNEL_EOF paramiko.pkey-module.html#MSG_CHANNEL_EOF
paramiko.pkey.MSG_USERAUTH_SUCCESS paramiko.pkey-module.html#MSG_USERAUTH_SUCCESS
paramiko.pkey.CONNECTION_FAILED_CODE paramiko.pkey-module.html#CONNECTION_FAILED_CODE
+paramiko.pkey.__package__ paramiko.pkey-module.html#__package__
paramiko.primes paramiko.primes-module.html
paramiko.primes._roll_random paramiko.primes-module.html#_roll_random
paramiko.primes._generate_prime paramiko.primes-module.html#_generate_prime
+paramiko.primes.__package__ paramiko.primes-module.html#__package__
paramiko.resource paramiko.resource-module.html
paramiko.resource.ResourceManager paramiko.resource-module.html#ResourceManager
+paramiko.resource.__package__ paramiko.resource-module.html#__package__
paramiko.rng paramiko.rng-module.html
paramiko.rng.rng_device paramiko.rng-module.html#rng_device
+paramiko.rng.__package__ paramiko.rng-module.html#__package__
paramiko.rng._strxor paramiko.rng-module.html#_strxor
paramiko.rng_posix paramiko.rng_posix-module.html
+paramiko.rng_posix.__package__ paramiko.rng_posix-module.html#__package__
paramiko.rng_posix.open_rng_device paramiko.rng_posix-module.html#open_rng_device
paramiko.rng_win32 paramiko.rng_win32-module.html
paramiko.rng_win32._winrandom paramiko.rng_win32-module.html#_winrandom
paramiko.rng_win32._open_winrandom paramiko.rng_win32-module.html#_open_winrandom
+paramiko.rng_win32.__package__ paramiko.rng_win32-module.html#__package__
paramiko.rng_win32.open_rng_device paramiko.rng_win32-module.html#open_rng_device
paramiko.rng_win32._open_urandom paramiko.rng_win32-module.html#_open_urandom
paramiko.rsakey paramiko.rsakey-module.html
@@ -602,6 +628,7 @@ paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS paramiko.rsakey-module.html#MSG_CHANNEL
paramiko.rsakey.MSG_CHANNEL_EOF paramiko.rsakey-module.html#MSG_CHANNEL_EOF
paramiko.rsakey.MSG_USERAUTH_SUCCESS paramiko.rsakey-module.html#MSG_USERAUTH_SUCCESS
paramiko.rsakey.CONNECTION_FAILED_CODE paramiko.rsakey-module.html#CONNECTION_FAILED_CODE
+paramiko.rsakey.__package__ paramiko.rsakey-module.html#__package__
paramiko.server paramiko.server-module.html
paramiko.server.AUTH_SUCCESSFUL paramiko.server-module.html#AUTH_SUCCESSFUL
paramiko.server.MSG_KEXINIT paramiko.server-module.html#MSG_KEXINIT
@@ -620,7 +647,7 @@ paramiko.server.AUTH_FAILED paramiko.server-module.html#AUTH_FAILED
paramiko.server.MSG_CHANNEL_SUCCESS paramiko.server-module.html#MSG_CHANNEL_SUCCESS
paramiko.server.MSG_USERAUTH_FAILURE paramiko.server-module.html#MSG_USERAUTH_FAILURE
paramiko.server.MSG_REQUEST_FAILURE paramiko.server-module.html#MSG_REQUEST_FAILURE
-paramiko.server.randpool paramiko.server-module.html#randpool
+paramiko.server.__package__ paramiko.server-module.html#__package__
paramiko.server.MSG_CHANNEL_DATA paramiko.server-module.html#MSG_CHANNEL_DATA
paramiko.server.CRITICAL paramiko.server-module.html#CRITICAL
paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -648,6 +675,7 @@ paramiko.server.MSG_SERVICE_REQUEST paramiko.server-module.html#MSG_SERVICE_REQU
paramiko.server.MSG_CHANNEL_EXTENDED_DATA paramiko.server-module.html#MSG_CHANNEL_EXTENDED_DATA
paramiko.server.MSG_CHANNEL_CLOSE paramiko.server-module.html#MSG_CHANNEL_CLOSE
paramiko.server.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.server-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.server.randpool paramiko.server-module.html#randpool
paramiko.server.MSG_CHANNEL_OPEN_SUCCESS paramiko.server-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.server.MSG_CHANNEL_EOF paramiko.server-module.html#MSG_CHANNEL_EOF
paramiko.server.MSG_USERAUTH_SUCCESS paramiko.server-module.html#MSG_USERAUTH_SUCCESS
@@ -673,6 +701,7 @@ paramiko.sftp.MSG_CHANNEL_EOF paramiko.sftp-module.html#MSG_CHANNEL_EOF
paramiko.sftp.SFTP_BAD_MESSAGE paramiko.sftp-module.html#SFTP_BAD_MESSAGE
paramiko.sftp.PY22 paramiko.sftp-module.html#PY22
paramiko.sftp.CMD_READLINK paramiko.sftp-module.html#CMD_READLINK
+paramiko.sftp.__package__ paramiko.sftp-module.html#__package__
paramiko.sftp.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp.MSG_NEWKEYS paramiko.sftp-module.html#MSG_NEWKEYS
paramiko.sftp.MSG_USERAUTH_SUCCESS paramiko.sftp-module.html#MSG_USERAUTH_SUCCESS
@@ -768,6 +797,7 @@ paramiko.sftp_attr.MSG_CHANNEL_EOF paramiko.sftp_attr-module.html#MSG_CHANNEL_EO
paramiko.sftp_attr.SFTP_BAD_MESSAGE paramiko.sftp_attr-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_attr.PY22 paramiko.sftp_attr-module.html#PY22
paramiko.sftp_attr.CMD_READLINK paramiko.sftp_attr-module.html#CMD_READLINK
+paramiko.sftp_attr.__package__ paramiko.sftp_attr-module.html#__package__
paramiko.sftp_attr.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_attr-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_attr.MSG_NEWKEYS paramiko.sftp_attr-module.html#MSG_NEWKEYS
paramiko.sftp_attr.MSG_USERAUTH_SUCCESS paramiko.sftp_attr-module.html#MSG_USERAUTH_SUCCESS
@@ -863,6 +893,7 @@ paramiko.sftp_client.CMD_STAT paramiko.sftp_client-module.html#CMD_STAT
paramiko.sftp_client.SFTP_BAD_MESSAGE paramiko.sftp_client-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_client.PY22 paramiko.sftp_client-module.html#PY22
paramiko.sftp_client.CMD_READLINK paramiko.sftp_client-module.html#CMD_READLINK
+paramiko.sftp_client.__package__ paramiko.sftp_client-module.html#__package__
paramiko.sftp_client.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_client.MSG_NEWKEYS paramiko.sftp_client-module.html#MSG_NEWKEYS
paramiko.sftp_client.MSG_USERAUTH_SUCCESS paramiko.sftp_client-module.html#MSG_USERAUTH_SUCCESS
@@ -958,6 +989,7 @@ paramiko.sftp_file.CMD_STAT paramiko.sftp_file-module.html#CMD_STAT
paramiko.sftp_file.SFTP_BAD_MESSAGE paramiko.sftp_file-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_file.PY22 paramiko.sftp_file-module.html#PY22
paramiko.sftp_file.CMD_READLINK paramiko.sftp_file-module.html#CMD_READLINK
+paramiko.sftp_file.__package__ paramiko.sftp_file-module.html#__package__
paramiko.sftp_file.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_file-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_file.MSG_NEWKEYS paramiko.sftp_file-module.html#MSG_NEWKEYS
paramiko.sftp_file.MSG_USERAUTH_SUCCESS paramiko.sftp_file-module.html#MSG_USERAUTH_SUCCESS
@@ -1051,6 +1083,7 @@ paramiko.sftp_handle.MSG_CHANNEL_EOF paramiko.sftp_handle-module.html#MSG_CHANNE
paramiko.sftp_handle.SFTP_BAD_MESSAGE paramiko.sftp_handle-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_handle.PY22 paramiko.sftp_handle-module.html#PY22
paramiko.sftp_handle.CMD_READLINK paramiko.sftp_handle-module.html#CMD_READLINK
+paramiko.sftp_handle.__package__ paramiko.sftp_handle-module.html#__package__
paramiko.sftp_handle.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_handle-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_handle.MSG_NEWKEYS paramiko.sftp_handle-module.html#MSG_NEWKEYS
paramiko.sftp_handle.MSG_USERAUTH_SUCCESS paramiko.sftp_handle-module.html#MSG_USERAUTH_SUCCESS
@@ -1145,6 +1178,7 @@ paramiko.sftp_server.MSG_CHANNEL_EOF paramiko.sftp_server-module.html#MSG_CHANNE
paramiko.sftp_server.SFTP_BAD_MESSAGE paramiko.sftp_server-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_server.PY22 paramiko.sftp_server-module.html#PY22
paramiko.sftp_server.CMD_READLINK paramiko.sftp_server-module.html#CMD_READLINK
+paramiko.sftp_server.__package__ paramiko.sftp_server-module.html#__package__
paramiko.sftp_server.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_server-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_server.MSG_NEWKEYS paramiko.sftp_server-module.html#MSG_NEWKEYS
paramiko.sftp_server.MSG_USERAUTH_SUCCESS paramiko.sftp_server-module.html#MSG_USERAUTH_SUCCESS
@@ -1240,6 +1274,7 @@ paramiko.sftp_si.MSG_CHANNEL_EOF paramiko.sftp_si-module.html#MSG_CHANNEL_EOF
paramiko.sftp_si.SFTP_BAD_MESSAGE paramiko.sftp_si-module.html#SFTP_BAD_MESSAGE
paramiko.sftp_si.PY22 paramiko.sftp_si-module.html#PY22
paramiko.sftp_si.CMD_READLINK paramiko.sftp_si-module.html#CMD_READLINK
+paramiko.sftp_si.__package__ paramiko.sftp_si-module.html#__package__
paramiko.sftp_si.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.sftp_si-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
paramiko.sftp_si.MSG_NEWKEYS paramiko.sftp_si-module.html#MSG_NEWKEYS
paramiko.sftp_si.MSG_USERAUTH_SUCCESS paramiko.sftp_si-module.html#MSG_USERAUTH_SUCCESS
@@ -1314,6 +1349,7 @@ paramiko.sftp_si.CMD_REALPATH paramiko.sftp_si-module.html#CMD_REALPATH
paramiko.sftp_si.MSG_CHANNEL_CLOSE paramiko.sftp_si-module.html#MSG_CHANNEL_CLOSE
paramiko.sftp_si.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.ssh_exception paramiko.ssh_exception-module.html
+paramiko.ssh_exception.__package__ paramiko.ssh_exception-module.html#__package__
paramiko.transport paramiko.transport-module.html
paramiko.transport.MSG_NAMES paramiko.transport-module.html#MSG_NAMES
paramiko.transport.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.transport-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
@@ -1337,7 +1373,6 @@ paramiko.transport.MSG_USERAUTH_BANNER paramiko.transport-module.html#MSG_USERAU
paramiko.transport.MSG_CHANNEL_EOF paramiko.transport-module.html#MSG_CHANNEL_EOF
paramiko.transport.AUTH_FAILED paramiko.transport-module.html#AUTH_FAILED
paramiko.transport.MSG_USERAUTH_PK_OK paramiko.transport-module.html#MSG_USERAUTH_PK_OK
-paramiko.transport.MSG_REQUEST_SUCCESS paramiko.transport-module.html#MSG_REQUEST_SUCCESS
paramiko.transport.AUTH_SUCCESSFUL paramiko.transport-module.html#AUTH_SUCCESSFUL
paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST paramiko.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST
paramiko.transport.MSG_CHANNEL_REQUEST paramiko.transport-module.html#MSG_CHANNEL_REQUEST
@@ -1357,14 +1392,16 @@ paramiko.transport.CONNECTION_FAILED_CODE paramiko.transport-module.html#CONNECT
paramiko.transport.MSG_CHANNEL_OPEN paramiko.transport-module.html#MSG_CHANNEL_OPEN
paramiko.transport.MSG_USERAUTH_INFO_RESPONSE paramiko.transport-module.html#MSG_USERAUTH_INFO_RESPONSE
paramiko.transport.MSG_REQUEST_FAILURE paramiko.transport-module.html#MSG_REQUEST_FAILURE
+paramiko.transport.__package__ paramiko.transport-module.html#__package__
paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL paramiko.transport-module.html#AUTH_PARTIALLY_SUCCESSFUL
paramiko.transport.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.transport-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.transport.MSG_CHANNEL_FAILURE paramiko.transport-module.html#MSG_CHANNEL_FAILURE
-paramiko.transport.MSG_CHANNEL_CLOSE paramiko.transport-module.html#MSG_CHANNEL_CLOSE
+paramiko.transport.MSG_REQUEST_SUCCESS paramiko.transport-module.html#MSG_REQUEST_SUCCESS
paramiko.transport.OPEN_FAILED_CONNECT_FAILED paramiko.transport-module.html#OPEN_FAILED_CONNECT_FAILED
paramiko.transport.MSG_USERAUTH_REQUEST paramiko.transport-module.html#MSG_USERAUTH_REQUEST
paramiko.transport._join_lingering_threads paramiko.transport-module.html#_join_lingering_threads
paramiko.transport.MSG_SERVICE_REQUEST paramiko.transport-module.html#MSG_SERVICE_REQUEST
+paramiko.transport.MSG_CHANNEL_CLOSE paramiko.transport-module.html#MSG_CHANNEL_CLOSE
paramiko.transport.MSG_CHANNEL_OPEN_SUCCESS paramiko.transport-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.util paramiko.util-module.html
paramiko.util.AUTH_SUCCESSFUL paramiko.util-module.html#AUTH_SUCCESSFUL
@@ -1373,7 +1410,7 @@ paramiko.util.MSG_KEXINIT paramiko.util-module.html#MSG_KEXINIT
paramiko.util.MSG_CHANNEL_WINDOW_ADJUST paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST
paramiko.util.MSG_CHANNEL_REQUEST paramiko.util-module.html#MSG_CHANNEL_REQUEST
paramiko.util.MSG_NAMES paramiko.util-module.html#MSG_NAMES
-paramiko.util.log_to_file paramiko.util-module.html#log_to_file
+paramiko.util.get_thread_id paramiko.util-module.html#get_thread_id
paramiko.util.lookup_ssh_host_config paramiko.util-module.html#lookup_ssh_host_config
paramiko.util.MSG_CHANNEL_OPEN paramiko.util-module.html#MSG_CHANNEL_OPEN
paramiko.util.tb_strings paramiko.util-module.html#tb_strings
@@ -1382,7 +1419,6 @@ paramiko.util.MSG_REQUEST_SUCCESS paramiko.util-module.html#MSG_REQUEST_SUCCESS
paramiko.util.MSG_DISCONNECT paramiko.util-module.html#MSG_DISCONNECT
paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
paramiko.util.MSG_SERVICE_ACCEPT paramiko.util-module.html#MSG_SERVICE_ACCEPT
-paramiko.util.get_thread_id paramiko.util-module.html#get_thread_id
paramiko.util.MSG_IGNORE paramiko.util-module.html#MSG_IGNORE
paramiko.util._g_thread_lock paramiko.util-module.html#_g_thread_lock
paramiko.util.deflate_long paramiko.util-module.html#deflate_long
@@ -1393,7 +1429,7 @@ paramiko.util.MSG_CHANNEL_SUCCESS paramiko.util-module.html#MSG_CHANNEL_SUCCESS
paramiko.util.MSG_USERAUTH_FAILURE paramiko.util-module.html#MSG_USERAUTH_FAILURE
paramiko.util.MSG_REQUEST_FAILURE paramiko.util-module.html#MSG_REQUEST_FAILURE
paramiko.util.inflate_long paramiko.util-module.html#inflate_long
-paramiko.util._g_thread_ids paramiko.util-module.html#_g_thread_ids
+paramiko.util.__package__ paramiko.util-module.html#__package__
paramiko.util._g_thread_counter paramiko.util-module.html#_g_thread_counter
paramiko.util.MSG_CHANNEL_DATA paramiko.util-module.html#MSG_CHANNEL_DATA
paramiko.util.CRITICAL paramiko.util-module.html#CRITICAL
@@ -1404,6 +1440,7 @@ paramiko.util.bit_length paramiko.util-module.html#bit_length
paramiko.util.unhexify paramiko.util-module.html#unhexify
paramiko.util.MSG_CHANNEL_OPEN_FAILURE paramiko.util-module.html#MSG_CHANNEL_OPEN_FAILURE
paramiko.util.MSG_USERAUTH_INFO_REQUEST paramiko.util-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.util.log_to_file paramiko.util-module.html#log_to_file
paramiko.util.MSG_DEBUG paramiko.util-module.html#MSG_DEBUG
paramiko.util.MSG_CHANNEL_FAILURE paramiko.util-module.html#MSG_CHANNEL_FAILURE
paramiko.util.OPEN_SUCCEEDED paramiko.util-module.html#OPEN_SUCCEEDED
@@ -1436,15 +1473,17 @@ paramiko.util.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.util-module.html#DISCON
paramiko.util.randpool paramiko.util-module.html#randpool
paramiko.util.MSG_CHANNEL_OPEN_SUCCESS paramiko.util-module.html#MSG_CHANNEL_OPEN_SUCCESS
paramiko.util.MSG_CHANNEL_EOF paramiko.util-module.html#MSG_CHANNEL_EOF
+paramiko.util._g_thread_ids paramiko.util-module.html#_g_thread_ids
paramiko.util.MSG_USERAUTH_SUCCESS paramiko.util-module.html#MSG_USERAUTH_SUCCESS
paramiko.util.CONNECTION_FAILED_CODE paramiko.util-module.html#CONNECTION_FAILED_CODE
paramiko.win_pageant paramiko.win_pageant-module.html
paramiko.win_pageant.win32con_WM_COPYDATA paramiko.win_pageant-module.html#win32con_WM_COPYDATA
paramiko.win_pageant._AGENT_MAX_MSGLEN paramiko.win_pageant-module.html#_AGENT_MAX_MSGLEN
paramiko.win_pageant._query_pageant paramiko.win_pageant-module.html#_query_pageant
-paramiko.win_pageant._has_win32all paramiko.win_pageant-module.html#_has_win32all
+paramiko.win_pageant.__package__ paramiko.win_pageant-module.html#__package__
paramiko.win_pageant._AGENT_COPYDATA_ID paramiko.win_pageant-module.html#_AGENT_COPYDATA_ID
paramiko.win_pageant._get_pageant_window_object paramiko.win_pageant-module.html#_get_pageant_window_object
+paramiko.win_pageant._has_win32all paramiko.win_pageant-module.html#_has_win32all
paramiko.win_pageant._has_ctypes paramiko.win_pageant-module.html#_has_ctypes
paramiko.win_pageant.can_talk_to_agent paramiko.win_pageant-module.html#can_talk_to_agent
paramiko.Agent paramiko.Agent-class.html
@@ -1481,10 +1520,10 @@ paramiko.BadAuthenticationType.__str__ paramiko.BadAuthenticationType-class.html
paramiko.BadAuthenticationType.allowed_types paramiko.BadAuthenticationType-class.html#allowed_types
paramiko.BadAuthenticationType.__init__ paramiko.BadAuthenticationType-class.html#__init__
paramiko.BadHostKeyException paramiko.BadHostKeyException-class.html
-paramiko.BadHostKeyException.hostname paramiko.BadHostKeyException-class.html#hostname
paramiko.BadHostKeyException.expected_key paramiko.BadHostKeyException-class.html#expected_key
-paramiko.BadHostKeyException.key paramiko.BadHostKeyException-class.html#key
paramiko.BadHostKeyException.__init__ paramiko.BadHostKeyException-class.html#__init__
+paramiko.BadHostKeyException.hostname paramiko.BadHostKeyException-class.html#hostname
+paramiko.BadHostKeyException.key paramiko.BadHostKeyException-class.html#key
paramiko.BufferedFile paramiko.BufferedFile-class.html
paramiko.BufferedFile.xreadlines paramiko.BufferedFile-class.html#xreadlines
paramiko.BufferedFile.readlines paramiko.BufferedFile-class.html#readlines
@@ -1533,6 +1572,7 @@ paramiko.Channel.recv_stderr paramiko.Channel-class.html#recv_stderr
paramiko.Channel.__init__ paramiko.Channel-class.html#__init__
paramiko.Channel._set_closed paramiko.Channel-class.html#_set_closed
paramiko.Channel.exit_status_ready paramiko.Channel-class.html#exit_status_ready
+paramiko.Channel.request_x11 paramiko.Channel-class.html#request_x11
paramiko.Channel.recv_ready paramiko.Channel-class.html#recv_ready
paramiko.Channel._feed_extended paramiko.Channel-class.html#_feed_extended
paramiko.Channel.shutdown_write paramiko.Channel-class.html#shutdown_write
@@ -1548,7 +1588,7 @@ paramiko.Channel.recv_stderr_ready paramiko.Channel-class.html#recv_stderr_ready
paramiko.Channel._request_success paramiko.Channel-class.html#_request_success
paramiko.Channel._send_eof paramiko.Channel-class.html#_send_eof
paramiko.Channel._window_adjust paramiko.Channel-class.html#_window_adjust
-paramiko.Channel.request_x11 paramiko.Channel-class.html#request_x11
+paramiko.Channel._event_pending paramiko.Channel-class.html#_event_pending
paramiko.Channel.__del__ paramiko.Channel-class.html#__del__
paramiko.Channel._check_add_window paramiko.Channel-class.html#_check_add_window
paramiko.Channel.invoke_subsystem paramiko.Channel-class.html#invoke_subsystem
@@ -1736,12 +1776,12 @@ paramiko.SFTPAttributes.FLAG_EXTENDED paramiko.SFTPAttributes-class.html#FLAG_EX
paramiko.SFTPAttributes.FLAG_PERMISSIONS paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS
paramiko.SFTPAttributes._unpack paramiko.SFTPAttributes-class.html#_unpack
paramiko.SFTPAttributes.from_stat paramiko.SFTPAttributes-class.html#from_stat
-paramiko.SFTPAttributes._from_msg paramiko.SFTPAttributes-class.html#_from_msg
-paramiko.SFTPAttributes._rwx paramiko.SFTPAttributes-class.html#_rwx
paramiko.SFTPAttributes.FLAG_UIDGID paramiko.SFTPAttributes-class.html#FLAG_UIDGID
+paramiko.SFTPAttributes._rwx paramiko.SFTPAttributes-class.html#_rwx
paramiko.SFTPAttributes._debug_str paramiko.SFTPAttributes-class.html#_debug_str
paramiko.SFTPAttributes.FLAG_SIZE paramiko.SFTPAttributes-class.html#FLAG_SIZE
paramiko.SFTPAttributes.__repr__ paramiko.SFTPAttributes-class.html#__repr__
+paramiko.SFTPAttributes._from_msg paramiko.SFTPAttributes-class.html#_from_msg
paramiko.SFTPClient paramiko.SFTPClient-class.html
paramiko.SFTPClient.rename paramiko.SFTPClient-class.html#rename
paramiko.SFTPClient._request paramiko.SFTPClient-class.html#_request
@@ -1831,16 +1871,16 @@ paramiko.SFTPFile.prefetch paramiko.SFTPFile-class.html#prefetch
paramiko.SFTPFile.settimeout paramiko.SFTPFile-class.html#settimeout
paramiko.SFTPFile._prefetch_thread paramiko.SFTPFile-class.html#_prefetch_thread
paramiko.SFTPHandle paramiko.SFTPHandle-class.html
-paramiko.SFTPHandle._get_next_files paramiko.SFTPHandle-class.html#_get_next_files
-paramiko.SFTPHandle.stat paramiko.SFTPHandle-class.html#stat
-paramiko.SFTPHandle.read paramiko.SFTPHandle-class.html#read
+paramiko.SFTPHandle._set_files paramiko.SFTPHandle-class.html#_set_files
+paramiko.SFTPHandle.close paramiko.SFTPHandle-class.html#close
+paramiko.SFTPHandle.__init__ paramiko.SFTPHandle-class.html#__init__
paramiko.SFTPHandle.write paramiko.SFTPHandle-class.html#write
paramiko.SFTPHandle._get_name paramiko.SFTPHandle-class.html#_get_name
paramiko.SFTPHandle.chattr paramiko.SFTPHandle-class.html#chattr
-paramiko.SFTPHandle._set_files paramiko.SFTPHandle-class.html#_set_files
paramiko.SFTPHandle._set_name paramiko.SFTPHandle-class.html#_set_name
-paramiko.SFTPHandle.close paramiko.SFTPHandle-class.html#close
-paramiko.SFTPHandle.__init__ paramiko.SFTPHandle-class.html#__init__
+paramiko.SFTPHandle.stat paramiko.SFTPHandle-class.html#stat
+paramiko.SFTPHandle.read paramiko.SFTPHandle-class.html#read
+paramiko.SFTPHandle._get_next_files paramiko.SFTPHandle-class.html#_get_next_files
paramiko.SFTPServer paramiko.SFTPServer-class.html
paramiko.SFTPServer.start_subsystem paramiko.SFTPServer-class.html#start_subsystem
paramiko.SFTPServer._send_handle_response paramiko.SFTPServer-class.html#_send_handle_response
@@ -2167,6 +2207,10 @@ paramiko.transport.ChannelMap.__init__ paramiko.transport.ChannelMap-class.html#
paramiko.transport.ChannelMap.put paramiko.transport.ChannelMap-class.html#put
paramiko.transport.ChannelMap.__len__ paramiko.transport.ChannelMap-class.html#__len__
paramiko.transport.ChannelMap.delete paramiko.transport.ChannelMap-class.html#delete
+paramiko.util.Counter paramiko.util.Counter-class.html
+paramiko.util.Counter.__call__ paramiko.util.Counter-class.html#__call__
+paramiko.util.Counter.new paramiko.util.Counter-class.html#new
+paramiko.util.Counter.__init__ paramiko.util.Counter-class.html#__init__
paramiko.util.PFilter paramiko.util.PFilter-class.html
paramiko.util.PFilter.filter paramiko.util.PFilter-class.html#filter
paramiko.util.enumerate paramiko.util.enumerate-class.html
diff --git a/docs/bug-index.html b/docs/bug-index.html
index d66129c..6c245c1 100644
--- a/docs/bug-index.html
+++ b/docs/bug-index.html
@@ -85,7 +85,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/class-tree.html b/docs/class-tree.html
index 1036434..ab52904 100644
--- a/docs/class-tree.html
+++ b/docs/class-tree.html
@@ -139,10 +139,10 @@
</li>
</ul>
</li>
- <li> <strong class="uidlink"><a href="paramiko.rng_posix.error-class.html">paramiko.rng_posix.error</a></strong>
- </li>
<li> <strong class="uidlink"><a href="paramiko.rng_win32.error-class.html">paramiko.rng_win32.error</a></strong>
</li>
+ <li> <strong class="uidlink"><a href="paramiko.rng_posix.error-class.html">paramiko.rng_posix.error</a></strong>
+ </li>
</ul>
</li>
</ul>
@@ -191,6 +191,9 @@
</li>
<li> <strong class="uidlink"><a href="paramiko.transport.ChannelMap-class.html">paramiko.transport.ChannelMap</a></strong>
</li>
+ <li> <strong class="uidlink"><a href="paramiko.util.Counter-class.html">paramiko.util.Counter</a></strong>:
+ <em class="summary">Stateful counter for CTR mode crypto</em>
+ </li>
<li> <strong class="uidlink"><a href="paramiko.logging22.Formatter-class.html">paramiko.logging22.Formatter</a></strong>
</li>
<li> <strong class="uidlink"><a href="paramiko.kex_gex.KexGex-class.html">paramiko.kex_gex.KexGex</a></strong>
@@ -346,7 +349,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/help.html b/docs/help.html
index ec1c7dc..56d6d84 100644
--- a/docs/help.html
+++ b/docs/help.html
@@ -244,7 +244,7 @@ page was last updated. </p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/identifier-index.html b/docs/identifier-index.html
index 5976d1a..1eeab5f 100644
--- a/docs/identifier-index.html
+++ b/docs/identifier-index.html
@@ -991,183 +991,184 @@
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_READLINK">CMD_READLINK</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.auth_handler-module.html" onclick="show_private();">paramiko.auth_handler</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util.Counter-class.html">Counter</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_READLINK">CMD_READLINK</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.channel-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.channel-module.html" onclick="show_private();">paramiko.channel</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.auth_handler-module.html" onclick="show_private();">paramiko.auth_handler</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.client-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.channel-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.channel-module.html" onclick="show_private();">paramiko.channel</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.common-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.common-module.html" onclick="show_private();">paramiko.common</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.client-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.dsskey-module.html" onclick="show_private();">paramiko.dsskey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.common-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.common-module.html" onclick="show_private();">paramiko.common</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys-module.html" onclick="show_private();">paramiko.hostkeys</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.dsskey-module.html" onclick="show_private();">paramiko.dsskey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys-module.html" onclick="show_private();">paramiko.hostkeys</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.packet-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.pkey-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.pkey-module.html" onclick="show_private();">paramiko.pkey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.packet-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.rsakey-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.rsakey-module.html" onclick="show_private();">paramiko.rsakey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.pkey-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pkey-module.html" onclick="show_private();">paramiko.pkey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.server-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.server-module.html" onclick="show_private();">paramiko.server</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rsakey-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rsakey-module.html" onclick="show_private();">paramiko.rsakey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.server-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.server-module.html" onclick="show_private();">paramiko.server</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.transport-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util-module.html#CRITICAL">CRITICAL</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.transport-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_RENAME">CMD_RENAME</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#CRITICAL">CRITICAL</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
@@ -3692,15 +3693,16 @@
<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex.KexGex-class.html">KexGex</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.packet.NeedRekeyException-class.html">NeedRekeyException</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#normalize">normalize()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#next">next()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.kex_group1.KexGroup1-class.html#name">name</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1.KexGroup1-class.html">KexGroup1</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#next">next()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="paramiko.util.Counter-class.html#new">new()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.Counter-class.html">Counter</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#normalize">normalize()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
</tr>
</table>
</td></tr>
@@ -4674,15 +4676,15 @@
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SSHClient-class.html">SSHClient</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.client-module.html#SSH_PORT">SSH_PORT</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SSHConfig-class.html">SSHConfig</a><br />
+<td width="33%" class="link-index"><a href="paramiko.SSHClient-class.html">SSHClient</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
@@ -4690,7 +4692,7 @@
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SSHException-class.html">SSHException</a><br />
+<td width="33%" class="link-index"><a href="paramiko.SSHConfig-class.html">SSHConfig</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
@@ -4698,143 +4700,144 @@
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#start_client">start_client()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SSHException-class.html">SSHException</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex.KexGex-class.html#start_kex">start_kex()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex.KexGex-class.html">KexGex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#start_client">start_client()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_group1.KexGroup1-class.html#start_kex">start_kex()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1.KexGroup1-class.html">KexGroup1</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex.KexGex-class.html#start_kex">start_kex()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex.KexGex-class.html">KexGex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#start_server">start_server()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1.KexGroup1-class.html#start_kex">start_kex()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1.KexGroup1-class.html">KexGroup1</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html">sftp_client</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPServer-class.html#start_subsystem">start_subsystem()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServer-class.html">SFTPServer</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#start_server">start_server()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SubsystemHandler-class.html#start_subsystem">start_subsystem()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPServer-class.html#start_subsystem">start_subsystem()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServer-class.html">SFTPServer</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#stat">stat()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SubsystemHandler-class.html#start_subsystem">start_subsystem()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#stat">stat()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPFile-class.html">SFTPFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#stat">stat()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html">sftp_handle</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPHandle-class.html#stat">stat()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPHandle-class.html">SFTPHandle</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#stat">stat()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPFile-class.html">SFTPFile</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#stat">stat()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPHandle-class.html#stat">stat()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPHandle-class.html">SFTPHandle</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html#stir">stir()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#stat">stat()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#stop_thread">stop_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html#stir">stir()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22.StreamHandler-class.html">StreamHandler</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#stop_thread">stop_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.rng-module.html" onclick="show_private();">paramiko.rng</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.logging22.StreamHandler-class.html">StreamHandler</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng-module.html" onclick="show_private();">paramiko.rng</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#symlink">symlink()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#symlink">symlink()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#symlink">symlink()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#SFTP_DESC">SFTP_DESC</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#symlink">symlink()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_DESC">SFTP_DESC</a><br />
@@ -5044,331 +5047,441 @@
<tr>
<td width="33%" class="link-index"><a href="paramiko-module.html#__author__">__author__</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22.Formatter-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22.Formatter-class.html">Formatter</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_CLIENT_ID">_CLIENT_ID</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.compress.ZlibCompressor-class.html#__call__">__call__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.compress.ZlibCompressor-class.html">ZlibCompressor</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22.StreamHandler-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22.StreamHandler-class.html">StreamHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_compression_info">_compression_info</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util.enumerate-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.enumerate-class.html">enumerate</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.RSAKey-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.RSAKey-class.html">RSAKey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.compress.ZlibDecompressor-class.html#__call__">__call__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.compress.ZlibDecompressor-class.html">ZlibDecompressor</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22.logger-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22.logger-class.html">logger</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE">_DEFAULT_BUFSIZE</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__len__">__len__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.buffered_pipe.BufferedPipe-class.html">BufferedPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util.Counter-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.Counter-class.html">Counter</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.transport.ChannelMap-class.html#__len__">__len__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.transport.ChannelMap-class.html">ChannelMap</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.ber.BER-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ber.BER-class.html">BER</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#__cmp__">__cmp__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.pipe.OrPipe-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.pipe.OrPipe-class.html">OrPipe</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_counter">_g_thread_counter</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko-module.html#__license__">__license__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko-module.html#__version__">__version__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#__del__">__del__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.pipe.PosixPipe-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.pipe.PosixPipe-class.html">PosixPipe</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_ids">_g_thread_ids</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko-module.html#__version_info__">__version_info__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#__del__">__del__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.pipe.WindowsPipe-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.pipe.WindowsPipe-class.html">WindowsPipe</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_lock">_g_thread_lock</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.agent-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.transport-module.html#_active_threads">_active_threads</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#__del__">__del__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPFile-class.html">SFTPFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.primes.ModulusPack-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.primes.ModulusPack-class.html">ModulusPack</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_ciphers">_get_ciphers()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.auth_handler-module.html" onclick="show_private();">paramiko.auth_handler</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_AGENT_COPYDATA_ID">_AGENT_COPYDATA_ID</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#__getitem__">__getitem__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_compression">_get_compression()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.ber-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ber-module.html" onclick="show_private();">paramiko.ber</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_AGENT_MAX_MSGLEN">_AGENT_MAX_MSGLEN</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#__hash__">__hash__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.ssh_exception.PartialAuthentication-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.ssh_exception.PartialAuthentication-class.html">PartialAuthentication</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_digests">_get_digests()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.buffered_pipe-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.buffered_pipe-module.html" onclick="show_private();">paramiko.buffered_pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_channel_handler_table">_channel_handler_table</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.RSAKey-class.html#__hash__">__hash__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.RSAKey-class.html">RSAKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.transport.ChannelMap-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.transport.ChannelMap-class.html">ChannelMap</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_kex">_get_kex()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.channel-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.channel-module.html" onclick="show_private();">paramiko.channel</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_cipher_info">_cipher_info</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.Agent-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Agent-class.html">Agent</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util.enumerate-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util.enumerate-class.html">enumerate</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_key_types">_get_key_types()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.client-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#_CIPHER_TABLE">_CIPHER_TABLE</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.AgentKey-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.AgentKey-class.html">AgentKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.win_pageant.PageantConnection-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant.PageantConnection-class.html">PageantConnection</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_handler_table">_handler_table</a><br />
+<td width="33%" class="link-index"><a href="paramiko.common-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.common-module.html" onclick="show_private();">paramiko.common</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_CLIENT_ID">_CLIENT_ID</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.BadAuthenticationType-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_has_ctypes">_has_ctypes</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.compress-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.compress-module.html" onclick="show_private();">paramiko.compress</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_compression_info">_compression_info</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.BadHostKeyException-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.BadHostKeyException-class.html">BadHostKeyException</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util.enumerate-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util.enumerate-class.html">enumerate</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_has_win32all">_has_win32all</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.config-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.config-module.html" onclick="show_private();">paramiko.config</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE">_DEFAULT_BUFSIZE</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.BufferedFile-class.html">BufferedFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__len__">__len__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.buffered_pipe.BufferedPipe-class.html">BufferedPipe</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#_hash_class">_hash_class</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.dsskey-module.html" onclick="show_private();">paramiko.dsskey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_counter">_g_thread_counter</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.transport.ChannelMap-class.html#__len__">__len__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.transport.ChannelMap-class.html">ChannelMap</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_kex_info">_kex_info</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.file-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.file-module.html" onclick="show_private();">paramiko.file</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_ids">_g_thread_ids</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.ChannelException-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.ChannelException-class.html">ChannelException</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko-module.html#__license__">__license__</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_key_info">_key_info</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys-module.html" onclick="show_private();">paramiko.hostkeys</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#_g_thread_lock">_g_thread_lock</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#_logger">_logger</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_ciphers">_get_ciphers()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Message-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_mac_info">_mac_info</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_compression">_get_compression()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.Message-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_modulus_pack">_modulus_pack</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_digests">_get_digests()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#__repr__">__repr__()</a><br />
+<td width="33%" class="link-index"><a href="paramiko.message-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.message-module.html" onclick="show_private();">paramiko.message</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_kex">_get_kex()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP">_MSG_KEXDH_GEX_GROUP</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.RSAKey-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.RSAKey-class.html">RSAKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT">_MSG_KEXDH_GEX_INIT</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.packet-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_get_key_types">_get_key_types()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.ber.BER-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.ber.BER-class.html">BER</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY">_MSG_KEXDH_GEX_REPLY</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.pipe-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe-module.html" onclick="show_private();">paramiko.pipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_handler_table">_handler_table</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.hostkeys.HostKeyEntry-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys.HostKeyEntry-class.html">HostKeyEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST">_MSG_KEXDH_GEX_REQUEST</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.pkey-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pkey-module.html" onclick="show_private();">paramiko.pkey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_has_ctypes">_has_ctypes</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPFile-class.html">SFTPFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#__setitem__">__setitem__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST_OLD">_MSG_KEXDH_GEX_REQUEST_OLD</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.primes-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.primes-module.html" onclick="show_private();">paramiko.primes</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_has_win32all">_has_win32all</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPHandle-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPHandle-class.html">SFTPHandle</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.AgentKey-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.AgentKey-class.html">AgentKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#_MSG_KEXDH_INIT">_MSG_KEXDH_INIT</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.resource-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.resource-module.html" onclick="show_private();">paramiko.resource</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#_hash_class">_hash_class</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPServer-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServer-class.html">SFTPServer</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.BadAuthenticationType-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY">_MSG_KEXDH_REPLY</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rng-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng-module.html" onclick="show_private();">paramiko.rng</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_kex_info">_kex_info</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.util-module.html#_pfilter">_pfilter</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rng_posix-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng_posix-module.html" onclick="show_private();">paramiko.rng_posix</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_key_info">_key_info</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SSHClient-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Message-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_ciphers">_preferred_ciphers</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.rng_win32-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng_win32-module.html">paramiko.rng_win32</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#_logger">_logger</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22-module.html">paramiko.logging22</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SSHConfig-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SSHConfig-class.html">SSHConfig</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_compression">_preferred_compression</a><br />
+<td width="33%" class="link-index"><a href="paramiko.rsakey-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rsakey-module.html" onclick="show_private();">paramiko.rsakey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_mac_info">_mac_info</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.RSAKey-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.RSAKey-class.html">RSAKey</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_kex">_preferred_kex</a><br />
+<td width="33%" class="link-index"><a href="paramiko.server-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.server-module.html" onclick="show_private();">paramiko.server</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_modulus_pack">_modulus_pack</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.SubsystemHandler-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_keys">_preferred_keys</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP">_MSG_KEXDH_GEX_GROUP</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.ber.BER-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.ber.BER-class.html">BER</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_macs">_preferred_macs</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT">_MSG_KEXDH_GEX_INIT</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.ber.BER-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.ber.BER-class.html">BER</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko-module.html#__version__">__version__</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_PROTO_ID">_PROTO_ID</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY">_MSG_KEXDH_GEX_REPLY</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.buffered_pipe.BufferedPipe-class.html">BufferedPipe</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko-module.html#__version_info__">__version_info__</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_ciphers">_set_ciphers()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST">_MSG_KEXDH_GEX_REQUEST</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.channel.ChannelStderrFile-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.channel.ChannelStderrFile-class.html">ChannelStderrFile</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.transport-module.html#_active_threads">_active_threads</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_compression">_set_compression()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST_OLD">_MSG_KEXDH_GEX_REQUEST_OLD</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.compress.ZlibCompressor-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.compress.ZlibCompressor-class.html">ZlibCompressor</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_AGENT_COPYDATA_ID">_AGENT_COPYDATA_ID</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_digests">_set_digests()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#_MSG_KEXDH_INIT">_MSG_KEXDH_INIT</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.compress.ZlibDecompressor-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.compress.ZlibDecompressor-class.html">ZlibDecompressor</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#_AGENT_MAX_MSGLEN">_AGENT_MAX_MSGLEN</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_kex">_set_kex()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY">_MSG_KEXDH_REPLY</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.hostkeys.HostKeyEntry-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys.HostKeyEntry-class.html">HostKeyEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_channel_handler_table">_channel_handler_table</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_key_types">_set_key_types()</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.ssh_exception-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ssh_exception-module.html" onclick="show_private();">paramiko.ssh_exception</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#_pfilter">_pfilter</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.kex_gex.KexGex-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.kex_gex.KexGex-class.html">KexGex</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_cipher_info">_cipher_info</a><br />
+<td width="33%" class="link-index"><a href="paramiko.transport-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_ciphers">_preferred_ciphers</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#_VERSION">_VERSION</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="paramiko.kex_group1.KexGroup1-class.html#__init__">__init__()</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.kex_group1.KexGroup1-class.html">KexGroup1</a>)</span></td>
-<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#_CIPHER_TABLE">_CIPHER_TABLE</a><br />
-<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_compression">_preferred_compression</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22.Formatter-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22.Formatter-class.html">Formatter</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_kex">_preferred_kex</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22.StreamHandler-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22.StreamHandler-class.html">StreamHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_keys">_preferred_keys</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22.logger-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.logging22.logger-class.html">logger</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Message-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_preferred_macs">_preferred_macs</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pipe.OrPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe.OrPipe-class.html">OrPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#_PROTO_ID">_PROTO_ID</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pipe.PosixPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe.PosixPipe-class.html">PosixPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_ciphers">_set_ciphers()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pipe.WindowsPipe-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe.WindowsPipe-class.html">WindowsPipe</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Transport-class.html">Transport</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_compression">_set_compression()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.primes.ModulusPack-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.primes.ModulusPack-class.html">ModulusPack</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.ber.BER-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ber.BER-class.html">BER</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_digests">_set_digests()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys.HostKeyEntry-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys.HostKeyEntry-class.html">HostKeyEntry</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_kex">_set_kex()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.ssh_exception.PartialAuthentication-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ssh_exception.PartialAuthentication-class.html">PartialAuthentication</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#_set_key_types">_set_key_types()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SecurityOptions-class.html">SecurityOptions</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.transport.ChannelMap-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.transport.ChannelMap-class.html">ChannelMap</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.AgentKey-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.AgentKey-class.html">AgentKey</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#_VERSION">_VERSION</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util.Counter-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.Counter-class.html">Counter</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.BadAuthenticationType-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a>)</span></td>
<td width="33%" class="link-index"><a href="paramiko.rng_win32-module.html#_winrandom">_winrandom</a><br />
<span class="index-where">(in&nbsp;<a href="paramiko.rng_win32-module.html">paramiko.rng_win32</a>)</span></td>
</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util.enumerate-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.enumerate-class.html">enumerate</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.win_pageant.PageantConnection-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.win_pageant.PageantConnection-class.html">PageantConnection</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Message-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
</table>
</td></tr>
</table>
@@ -5398,7 +5511,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/module-tree.html b/docs/module-tree.html
index 10ad60b..250ddeb 100644
--- a/docs/module-tree.html
+++ b/docs/module-tree.html
@@ -136,7 +136,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko-module.html b/docs/paramiko-module.html
index 4c88f2e..f7eefd6 100644
--- a/docs/paramiko-module.html
+++ b/docs/paramiko-module.html
@@ -90,19 +90,19 @@
<hr />
<div class="fields"> <p><strong>Version:</strong>
- 1.7.4 (Desmond)
+ 1.7.6 (Fanny)
</p>
<p><strong>Author:</strong>
Robey Pointer
</p>
<p><strong>Contact:</strong>
- robey@lag.net
+ robeypointer@gmail.com
</p>
<p><strong>License:</strong>
GNU Lesser General Public License (LGPL)
</p>
<p><strong>Date:</strong>
- 06 Jul 2008
+ 1 Nov 2009
</p>
</div><!-- ==================== SUBMODULES ==================== -->
<a name="section-Submodules"></a>
@@ -494,7 +494,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko-pysrc.html b/docs/paramiko-pysrc.html
index a81648d..fe7d304 100644
--- a/docs/paramiko-pysrc.html
+++ b/docs/paramiko-pysrc.html
@@ -53,24 +53,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko-module.html">Package paramiko</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2008 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2009 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">I{Paramiko} (a combination of the esperanto words for "paranoid" and "friend")</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">is a module for python 2.3 or greater that implements the SSH2 protocol for</tt> </tt>
@@ -102,9 +102,9 @@
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring">Website: U{http://www.lag.net/paramiko/}</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring">@version: 1.7.4 (Desmond)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring">@version: 1.7.6 (Fanny)</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring">@author: Robey Pointer</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring">@contact: robey@lag.net</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring">@contact: robeypointer@gmail.com</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring">@license: GNU Lesser General Public License (LGPL)</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> </tt>
@@ -114,10 +114,10 @@
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">'You need python 2.2 for this module.'</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable paramiko.__author__=paramiko-module.html#__author__"><a title="paramiko.__author__" class="py-name" href="#" onclick="return doclink('link-0', '__author__', 'link-0');">__author__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Robey Pointer &lt;robey@lag.net&gt;"</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-name">__date__</tt> <tt class="py-op">=</tt> <tt class="py-string">"06 Jul 2008"</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable paramiko.__version__=paramiko-module.html#__version__"><a title="paramiko.__version__" class="py-name" href="#" onclick="return doclink('link-1', '__version__', 'link-1');">__version__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"1.7.4 (Desmond)"</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable paramiko.__version_info__=paramiko-module.html#__version_info__"><a title="paramiko.__version_info__" class="py-name" href="#" onclick="return doclink('link-2', '__version_info__', 'link-2');">__version_info__</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">7</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable paramiko.__author__=paramiko-module.html#__author__"><a title="paramiko.__author__" class="py-name" href="#" onclick="return doclink('link-0', '__author__', 'link-0');">__author__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Robey Pointer &lt;robeypointer@gmail.com&gt;"</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-name">__date__</tt> <tt class="py-op">=</tt> <tt class="py-string">"1 Nov 2009"</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable paramiko.__version__=paramiko-module.html#__version__"><a title="paramiko.__version__" class="py-name" href="#" onclick="return doclink('link-1', '__version__', 'link-1');">__version__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"1.7.6 (Fanny)"</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable paramiko.__version_info__=paramiko-module.html#__version_info__"><a title="paramiko.__version_info__" class="py-name" href="#" onclick="return doclink('link-2', '__version_info__', 'link-2');">__version_info__</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">7</tt><tt class="py-op">,</tt> <tt class="py-number">6</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable paramiko.__license__=paramiko-module.html#__license__"><a title="paramiko.__license__" class="py-name" href="#" onclick="return doclink('link-3', '__license__', 'link-3');">__license__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"GNU Lesser General Public License (LGPL)"</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
@@ -168,11 +168,11 @@ paramiko.file" class="py-name" href="#" onclick="return doclink('link-49', 'file
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-58" class="py-name" targets="Module paramiko.config=paramiko.config-module.html"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-58', 'config', 'link-58');">config</a></tt> <tt class="py-keyword">import</tt> <tt id="link-59" class="py-name" targets="Class paramiko.SSHConfig=paramiko.SSHConfig-class.html"><a title="paramiko.SSHConfig" class="py-name" href="#" onclick="return doclink('link-59', 'SSHConfig', 'link-59');">SSHConfig</a></tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-comment"># fix module names for epydoc</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-60', 'values', 'link-60');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'classobj'</tt><tt class="py-op">:</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-comment"># classobj for exceptions :/</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> <tt class="py-op">=</tt> <tt class="py-name">__name__</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> <tt class="py-op">=</tt> <tt class="py-name">__name__</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-keyword">del</tt> <tt class="py-name">c</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-61" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-61', 'common', 'link-61');">common</a></tt> <tt class="py-keyword">import</tt> <tt id="link-62" class="py-name" targets="Variable paramiko.auth_handler.AUTH_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_SUCCESSFUL,Variable paramiko.channel.AUTH_SUCCESSFUL=paramiko.channel-module.html#AUTH_SUCCESSFUL,Variable paramiko.client.AUTH_SUCCESSFUL=paramiko.client-module.html#AUTH_SUCCESSFUL,Variable paramiko.common.AUTH_SUCCESSFUL=paramiko.common-module.html#AUTH_SUCCESSFUL,Variable paramiko.dsskey.AUTH_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_SUCCESSFUL,Variable paramiko.packet.AUTH_SUCCESSFUL=paramiko.packet-module.html#AUTH_SUCCESSFUL,Variable paramiko.pkey.AUTH_SUCCESSFUL=paramiko.pkey-module.html#AUTH_SUCCESSFUL,Variable paramiko.rsakey.AUTH_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_SUCCESSFUL,Variable paramiko.server.AUTH_SUCCESSFUL=paramiko.server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp.AUTH_SUCCESSFUL=paramiko.sftp-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_SUCCESSFUL,Variable paramiko.transport.AUTH_SUCCESSFUL=paramiko.transport-module.html#AUTH_SUCCESSFUL,Variable paramiko.util.AUTH_SUCCESSFUL=paramiko.util-module.html#AUTH_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_SUCCESSFUL
@@ -463,7 +463,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:33 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.Agent-class.html b/docs/paramiko.Agent-class.html
index 18e1f3a..ffa2ee1 100644
--- a/docs/paramiko.Agent-class.html
+++ b/docs/paramiko.Agent-class.html
@@ -211,7 +211,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.AgentKey-class.html b/docs/paramiko.AgentKey-class.html
index 7b09946..dbdac26 100644
--- a/docs/paramiko.AgentKey-class.html
+++ b/docs/paramiko.AgentKey-class.html
@@ -164,13 +164,16 @@ object --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__repr__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -374,7 +377,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.AuthenticationException-class.html b/docs/paramiko.AuthenticationException-class.html
index 9056815..b60762b 100644
--- a/docs/paramiko.AuthenticationException-class.html
+++ b/docs/paramiko.AuthenticationException-class.html
@@ -99,15 +99,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -158,7 +163,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.AutoAddPolicy-class.html b/docs/paramiko.AutoAddPolicy-class.html
index 36cecb0..259159e 100644
--- a/docs/paramiko.AutoAddPolicy-class.html
+++ b/docs/paramiko.AutoAddPolicy-class.html
@@ -103,6 +103,7 @@
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -111,7 +112,9 @@
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -199,7 +202,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.BadAuthenticationType-class.html b/docs/paramiko.BadAuthenticationType-class.html
index bf7ba8a..34a88cf 100644
--- a/docs/paramiko.BadAuthenticationType-class.html
+++ b/docs/paramiko.BadAuthenticationType-class.html
@@ -130,14 +130,19 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__setstate__</code>
+ <code>__setstate__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -269,7 +274,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.BadHostKeyException-class.html b/docs/paramiko.BadHostKeyException-class.html
index 20d2814..77648d4 100644
--- a/docs/paramiko.BadHostKeyException-class.html
+++ b/docs/paramiko.BadHostKeyException-class.html
@@ -111,15 +111,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -241,7 +246,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.BufferedFile-class.html b/docs/paramiko.BufferedFile-class.html
index f3fe0f5..32a971c 100644
--- a/docs/paramiko.BufferedFile-class.html
+++ b/docs/paramiko.BufferedFile-class.html
@@ -331,6 +331,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -338,7 +339,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -831,7 +834,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.Channel-class.html b/docs/paramiko.Channel-class.html
index 41ff545..da49f26 100644
--- a/docs/paramiko.Channel-class.html
+++ b/docs/paramiko.Channel-class.html
@@ -756,13 +756,16 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -1973,7 +1976,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ChannelException-class.html b/docs/paramiko.ChannelException-class.html
index 8a02d64..ea1f235 100644
--- a/docs/paramiko.ChannelException-class.html
+++ b/docs/paramiko.ChannelException-class.html
@@ -110,15 +110,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -223,7 +228,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.DSSKey-class.html b/docs/paramiko.DSSKey-class.html
index 29c5115..ff05930 100644
--- a/docs/paramiko.DSSKey-class.html
+++ b/docs/paramiko.DSSKey-class.html
@@ -272,12 +272,15 @@ object --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__repr__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -725,7 +728,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.HostKeys-class.html b/docs/paramiko.HostKeys-class.html
index e4db6c8..f15f929 100644
--- a/docs/paramiko.HostKeys-class.html
+++ b/docs/paramiko.HostKeys-class.html
@@ -621,7 +621,7 @@ UserDict.DictMixin --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.Message-class.html b/docs/paramiko.Message-class.html
index 7edfd13..6b05a7a 100644
--- a/docs/paramiko.Message-class.html
+++ b/docs/paramiko.Message-class.html
@@ -487,12 +487,15 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -1076,7 +1079,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.MissingHostKeyPolicy-class.html b/docs/paramiko.MissingHostKeyPolicy-class.html
index 29eaf1a..07c46f6 100644
--- a/docs/paramiko.MissingHostKeyPolicy-class.html
+++ b/docs/paramiko.MissingHostKeyPolicy-class.html
@@ -115,6 +115,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -123,7 +124,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -207,7 +210,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.PKey-class.html b/docs/paramiko.PKey-class.html
index 0e9bd2a..a111e17 100644
--- a/docs/paramiko.PKey-class.html
+++ b/docs/paramiko.PKey-class.html
@@ -301,13 +301,16 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__repr__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -832,7 +835,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.PasswordRequiredException-class.html b/docs/paramiko.PasswordRequiredException-class.html
index 4de6bcb..de64784 100644
--- a/docs/paramiko.PasswordRequiredException-class.html
+++ b/docs/paramiko.PasswordRequiredException-class.html
@@ -90,15 +90,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -149,7 +154,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.RSAKey-class.html b/docs/paramiko.RSAKey-class.html
index a611e3f..4c6ad82 100644
--- a/docs/paramiko.RSAKey-class.html
+++ b/docs/paramiko.RSAKey-class.html
@@ -272,12 +272,15 @@ object --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__repr__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -725,7 +728,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.RejectPolicy-class.html b/docs/paramiko.RejectPolicy-class.html
index 8d38bec..3489d77 100644
--- a/docs/paramiko.RejectPolicy-class.html
+++ b/docs/paramiko.RejectPolicy-class.html
@@ -102,6 +102,7 @@
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -110,7 +111,9 @@
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -198,7 +201,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTP-class.html b/docs/paramiko.SFTP-class.html
index 3a7f52d..bda368e 100644
--- a/docs/paramiko.SFTP-class.html
+++ b/docs/paramiko.SFTP-class.html
@@ -107,6 +107,7 @@ object --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -114,7 +115,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -177,7 +180,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPAttributes-class.html b/docs/paramiko.SFTPAttributes-class.html
index 568b910..b09624f 100644
--- a/docs/paramiko.SFTPAttributes-class.html
+++ b/docs/paramiko.SFTPAttributes-class.html
@@ -153,12 +153,15 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -393,7 +396,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPClient-class.html b/docs/paramiko.SFTPClient-class.html
index 41043ac..9e49cc3 100644
--- a/docs/paramiko.SFTPClient-class.html
+++ b/docs/paramiko.SFTPClient-class.html
@@ -563,6 +563,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -570,7 +571,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -687,7 +690,8 @@ object --+
SFTP doesn't really have the concept of a current working directory, this
is emulated by paramiko. Once you use this method to set a working
directory, all operations on this SFTPClient object will be relative to
- that path.</p>
+ that path. You can pass in <code>None</code> to stop using a current
+ working directory.</p>
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
@@ -1506,7 +1510,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPError-class.html b/docs/paramiko.SFTPError-class.html
index 0c1d9f1..304ae63 100644
--- a/docs/paramiko.SFTPError-class.html
+++ b/docs/paramiko.SFTPError-class.html
@@ -83,15 +83,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -142,7 +147,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPFile-class.html b/docs/paramiko.SFTPFile-class.html
index d15b74d..23e4ee9 100644
--- a/docs/paramiko.SFTPFile-class.html
+++ b/docs/paramiko.SFTPFile-class.html
@@ -386,6 +386,7 @@
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -393,7 +394,9 @@
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -986,7 +989,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:16 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPHandle-class.html b/docs/paramiko.SFTPHandle-class.html
index 63a4491..1f76f9d 100644
--- a/docs/paramiko.SFTPHandle-class.html
+++ b/docs/paramiko.SFTPHandle-class.html
@@ -195,6 +195,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -202,7 +203,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -451,7 +454,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPServer-class.html b/docs/paramiko.SFTPServer-class.html
index 514d31e..995c698 100644
--- a/docs/paramiko.SFTPServer-class.html
+++ b/docs/paramiko.SFTPServer-class.html
@@ -159,6 +159,7 @@ threading._Verbose --+ |
<code>getName</code>,
<code>isAlive</code>,
<code>isDaemon</code>,
+ <code>is_alive</code>,
<code>join</code>,
<code>run</code>,
<code>setDaemon</code>,
@@ -167,13 +168,16 @@ threading._Verbose --+ |
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -233,6 +237,11 @@ threading._Verbose --+ |
</tr>
<tr>
<td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>:
+ <code>daemon</code>,
+ <code>ident</code>,
+ <code>name</code>
+ </p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__class__</code>
</p>
@@ -446,7 +455,7 @@ threading._Verbose --+ |
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SFTPServerInterface-class.html b/docs/paramiko.SFTPServerInterface-class.html
index df785ad..bb5db44 100644
--- a/docs/paramiko.SFTPServerInterface-class.html
+++ b/docs/paramiko.SFTPServerInterface-class.html
@@ -372,6 +372,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -379,7 +380,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -954,7 +957,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SSHClient-class.html b/docs/paramiko.SSHClient-class.html
index 4e3ec8e..5bc2cec 100644
--- a/docs/paramiko.SSHClient-class.html
+++ b/docs/paramiko.SSHClient-class.html
@@ -339,6 +339,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -346,7 +347,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -817,7 +820,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SSHConfig-class.html b/docs/paramiko.SSHConfig-class.html
index b568e27..549bb7a 100644
--- a/docs/paramiko.SSHConfig-class.html
+++ b/docs/paramiko.SSHConfig-class.html
@@ -62,9 +62,9 @@ object --+
<hr />
<p>Representation of config information as stored in the format used by
- OpenSSH. Queries can be made via <a
- href="paramiko.SSHConfig-class.html#lookup" class="link">lookup</a>. The
- format is described in OpenSSH's <code>ssh_config</code> man page. This
+ OpenSSH. Queries can be made via <a
+ href="paramiko.SSHConfig-class.html#lookup" class="link">lookup</a>. The
+ format is described in OpenSSH's <code>ssh_config</code> man page. This
class is provided primarily as a convenience to posix users (since the
OpenSSH format is a de-facto standard on posix) but should work fine on
Windows too.</p>
@@ -138,6 +138,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -145,7 +146,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -217,13 +220,13 @@ object --+
<p>The host-matching rules of OpenSSH's <code>ssh_config</code> man page
are used, which means that all configuration options from matching host
specifications are merged, with more specific hostmasks taking
- precedence. In other words, if <code>&quot;Port&quot;</code> is set
- under <code>&quot;Host *&quot;</code> and also <code>&quot;Host
+ precedence. In other words, if <code>&quot;Port&quot;</code> is set under
+ <code>&quot;Host *&quot;</code> and also <code>&quot;Host
*.example.com&quot;</code>, and the lookup is for
<code>&quot;ssh.example.com&quot;</code>, then the port entry for
<code>&quot;Host *.example.com&quot;</code> will win out.</p>
<p>The keys in the returned dict are all normalized to lowercase (look
- for <code>&quot;port&quot;</code>, not <code>&quot;Port&quot;</code>. No
+ for <code>&quot;port&quot;</code>, not <code>&quot;Port&quot;</code>. No
other processing is done to the keys or values.</p>
<dl class="fields">
<dt>Parameters:</dt>
@@ -284,7 +287,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SSHException-class.html b/docs/paramiko.SSHException-class.html
index 75c6138..3e965d4 100644
--- a/docs/paramiko.SSHException-class.html
+++ b/docs/paramiko.SSHException-class.html
@@ -92,15 +92,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -151,7 +156,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SecurityOptions-class.html b/docs/paramiko.SecurityOptions-class.html
index adfff52..e87cc17 100644
--- a/docs/paramiko.SecurityOptions-class.html
+++ b/docs/paramiko.SecurityOptions-class.html
@@ -119,13 +119,16 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -372,7 +375,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ServerInterface-class.html b/docs/paramiko.ServerInterface-class.html
index 06d75de..caa13f9 100644
--- a/docs/paramiko.ServerInterface-class.html
+++ b/docs/paramiko.ServerInterface-class.html
@@ -419,6 +419,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -427,7 +428,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -1222,7 +1225,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.SubsystemHandler-class.html b/docs/paramiko.SubsystemHandler-class.html
index 407b7f4..fe1ec23 100644
--- a/docs/paramiko.SubsystemHandler-class.html
+++ b/docs/paramiko.SubsystemHandler-class.html
@@ -181,6 +181,7 @@ threading._Verbose --+
<code>getName</code>,
<code>isAlive</code>,
<code>isDaemon</code>,
+ <code>is_alive</code>,
<code>join</code>,
<code>run</code>,
<code>setDaemon</code>,
@@ -189,13 +190,16 @@ threading._Verbose --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -210,6 +214,11 @@ threading._Verbose --+
</tr>
<tr>
<td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>:
+ <code>daemon</code>,
+ <code>ident</code>,
+ <code>name</code>
+ </p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__class__</code>
</p>
@@ -362,7 +371,7 @@ threading._Verbose --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.Transport-class.html b/docs/paramiko.Transport-class.html
index 98758da..fe043c2 100644
--- a/docs/paramiko.Transport-class.html
+++ b/docs/paramiko.Transport-class.html
@@ -820,6 +820,7 @@ threading._Verbose --+
<code>getName</code>,
<code>isAlive</code>,
<code>isDaemon</code>,
+ <code>is_alive</code>,
<code>join</code>,
<code>setDaemon</code>,
<code>setName</code>,
@@ -827,13 +828,16 @@ threading._Verbose --+
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -875,6 +879,11 @@ threading._Verbose --+
</tr>
<tr>
<td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>:
+ <code>daemon</code>,
+ <code>ident</code>,
+ <code>name</code>
+ </p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__class__</code>
</p>
@@ -2321,7 +2330,7 @@ threading._Verbose --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.WarningPolicy-class.html b/docs/paramiko.WarningPolicy-class.html
index e752ca5..bbdeb3c 100644
--- a/docs/paramiko.WarningPolicy-class.html
+++ b/docs/paramiko.WarningPolicy-class.html
@@ -102,6 +102,7 @@
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -110,7 +111,9 @@
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -198,7 +201,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.agent-module.html b/docs/paramiko.agent-module.html
index 91611cd..fb4fb5b 100644
--- a/docs/paramiko.agent-module.html
+++ b/docs/paramiko.agent-module.html
@@ -92,6 +92,13 @@
<a name="SSH2_AGENT_SIGN_RESPONSE"></a><span class="summary-name">SSH2_AGENT_SIGN_RESPONSE</span> = <code title="14">14</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -119,7 +126,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.agent-pysrc.html b/docs/paramiko.agent-pysrc.html
index 1c6bc72..f9412ec 100644
--- a/docs/paramiko.agent-pysrc.html
+++ b/docs/paramiko.agent-pysrc.html
@@ -55,23 +55,23 @@
<h1 class="epydoc">Source Code for <a href="paramiko.agent-module.html" onclick="show_private();">Module paramiko.agent</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 John Rochester &lt;john@jrochester.org&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">SSH Agent interface for Unix clients.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -119,7 +119,7 @@
paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-14', 'connect', 'link-14');">connect</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'SSH_AUTH_SOCK'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-comment"># probably a dangling env var: the ssh agent is gone</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt class="py-name">conn</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">'win32'</tt><tt class="py-op">:</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Module paramiko.win_pageant=paramiko.win_pageant-module.html"><a title="paramiko.win_pageant" class="py-name" href="#" onclick="return doclink('link-15', 'win_pageant', 'link-15');">win_pageant</a></tt> </tt>
@@ -129,7 +129,7 @@ paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('li
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-comment"># no agent support</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">ptype</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="paramiko.agent.SSH2_AGENTC_REQUEST_IDENTITIES" class="py-name" href="#" onclick="return doclink('link-20', 'SSH2_AGENTC_REQUEST_IDENTITIES', 'link-9');">SSH2_AGENTC_REQUEST_IDENTITIES</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-op">!=</tt> <tt id="link-21" class="py-name"><a title="paramiko.agent.SSH2_AGENT_IDENTITIES_ANSWER" class="py-name" href="#" onclick="return doclink('link-21', 'SSH2_AGENT_IDENTITIES_ANSWER', 'link-10');">SSH2_AGENT_IDENTITIES_ANSWER</a></tt><tt class="py-op">:</tt> </tt>
@@ -255,7 +255,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:33 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.auth_handler-module.html b/docs/paramiko.auth_handler-module.html
index 11c62df..527d16e 100644
--- a/docs/paramiko.auth_handler-module.html
+++ b/docs/paramiko.auth_handler-module.html
@@ -415,6 +415,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -502,7 +509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.auth_handler-pysrc.html b/docs/paramiko.auth_handler-pysrc.html
index 9373338..6805b9b 100644
--- a/docs/paramiko.auth_handler-pysrc.html
+++ b/docs/paramiko.auth_handler-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.auth_handler-module.html" onclick="show_private();">Module paramiko.auth_handler</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{AuthHandler}</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -80,7 +80,7 @@
<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">weakref</tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-comment"># this helps freezing utils</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">import</tt> <tt class="py-name">encodings</tt><tt class="py-op">.</tt><tt class="py-name">utf_8</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">encodings</tt><tt class="py-op">.</tt><tt class="py-name">utf_8</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-0', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-1', 'common', 'link-1');">common</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-2', 'paramiko', 'link-0');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-3', 'util', 'link-3');">util</a></tt> </tt>
@@ -106,7 +106,7 @@
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">interactive_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">submethods</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-comment"># for server mode:</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_username</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_username</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_fail_count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
</div><a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> </tt>
<a name="AuthHandler.is_authenticated"></a><div id="AuthHandler.is_authenticated-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="AuthHandler.is_authenticated-toggle" onclick="return toggle('AuthHandler.is_authenticated');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#is_authenticated">is_authenticated</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -173,7 +173,7 @@ paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink(
</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._request_auth"></a><div id="AuthHandler._request_auth-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="AuthHandler._request_auth-toggle" onclick="return toggle('AuthHandler._request_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_request_auth">_request_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._request_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._request_auth-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-27', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -372,8 +372,8 @@ paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link
<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-72', 'AuthenticationException', 'link-10');">AuthenticationException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Authentication failed.'</tt><tt class="py-op">)</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-comment"># this is horrible. python Exception isn't yet descended from</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># object, so type(e) won't work. :(</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name"><a title="paramiko.ssh_exception.PartialAuthentication" class="py-name" href="#" onclick="return doclink('link-73', 'PartialAuthentication', 'link-12');">PartialAuthentication</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-comment"># object, so type(e) won't work. :(</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name"><a title="paramiko.ssh_exception.PartialAuthentication" class="py-name" href="#" onclick="return doclink('link-73', 'PartialAuthentication', 'link-12');">PartialAuthentication</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Variable paramiko.BadAuthenticationType.allowed_types=paramiko.BadAuthenticationType-class.html#allowed_types,Variable paramiko.ssh_exception.PartialAuthentication.allowed_types=paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types"><a title="paramiko.BadAuthenticationType.allowed_types
paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-74', 'allowed_types', 'link-74');">allowed_types</a></tt> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
@@ -383,7 +383,7 @@ paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href
</div><div id="AuthHandler._parse_service_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_service_request-expanded"><a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-75', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-76', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">service</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssh-userauth'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-comment"># accepted</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-77', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-77', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-78', 'add_byte', 'link-28');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name" targets="Variable paramiko.auth_handler.MSG_SERVICE_ACCEPT=paramiko.auth_handler-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.channel.MSG_SERVICE_ACCEPT=paramiko.channel-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.client.MSG_SERVICE_ACCEPT=paramiko.client-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.common.MSG_SERVICE_ACCEPT=paramiko.common-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.dsskey.MSG_SERVICE_ACCEPT=paramiko.dsskey-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.hostkeys.MSG_SERVICE_ACCEPT=paramiko.hostkeys-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.kex_gex.MSG_SERVICE_ACCEPT=paramiko.kex_gex-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.kex_group1.MSG_SERVICE_ACCEPT=paramiko.kex_group1-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.packet.MSG_SERVICE_ACCEPT=paramiko.packet-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.pkey.MSG_SERVICE_ACCEPT=paramiko.pkey-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.rsakey.MSG_SERVICE_ACCEPT=paramiko.rsakey-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.server.MSG_SERVICE_ACCEPT=paramiko.server-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp.MSG_SERVICE_ACCEPT=paramiko.sftp-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_attr.MSG_SERVICE_ACCEPT=paramiko.sftp_attr-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_client.MSG_SERVICE_ACCEPT=paramiko.sftp_client-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_file.MSG_SERVICE_ACCEPT=paramiko.sftp_file-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_handle.MSG_SERVICE_ACCEPT=paramiko.sftp_handle-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_server.MSG_SERVICE_ACCEPT=paramiko.sftp_server-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.sftp_si.MSG_SERVICE_ACCEPT=paramiko.sftp_si-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.transport.MSG_SERVICE_ACCEPT=paramiko.transport-module.html#MSG_SERVICE_ACCEPT,Variable paramiko.util.MSG_SERVICE_ACCEPT=paramiko.util-module.html#MSG_SERVICE_ACCEPT"><a title="paramiko.auth_handler.MSG_SERVICE_ACCEPT
paramiko.channel.MSG_SERVICE_ACCEPT
paramiko.client.MSG_SERVICE_ACCEPT
@@ -409,7 +409,7 @@ paramiko.util.MSG_SERVICE_ACCEPT" class="py-name" href="#" onclick="return docli
<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-81', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-comment"># dunno this one</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_disconnect_service_not_available</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_disconnect_service_not_available</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._parse_service_accept"></a><div id="AuthHandler._parse_service_accept-def"><a name="L189"></a><tt class="py-lineno">189</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_service_accept-toggle" onclick="return toggle('AuthHandler._parse_service_accept');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_parse_service_accept">_parse_service_accept</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._parse_service_accept-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_service_accept-expanded"><a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-82', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -535,7 +535,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-107'
</div><a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._send_auth_result"></a><div id="AuthHandler._send_auth_result-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="AuthHandler._send_auth_result-toggle" onclick="return toggle('AuthHandler._send_auth_result');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_send_auth_result">_send_auth_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._send_auth_result-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._send_auth_result-expanded"><a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment"># okay, send result</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-108', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-108', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">result</tt> <tt class="py-op">==</tt> <tt id="link-109" class="py-name" targets="Variable paramiko.auth_handler.AUTH_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_SUCCESSFUL,Variable paramiko.channel.AUTH_SUCCESSFUL=paramiko.channel-module.html#AUTH_SUCCESSFUL,Variable paramiko.client.AUTH_SUCCESSFUL=paramiko.client-module.html#AUTH_SUCCESSFUL,Variable paramiko.common.AUTH_SUCCESSFUL=paramiko.common-module.html#AUTH_SUCCESSFUL,Variable paramiko.dsskey.AUTH_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_SUCCESSFUL,Variable paramiko.packet.AUTH_SUCCESSFUL=paramiko.packet-module.html#AUTH_SUCCESSFUL,Variable paramiko.pkey.AUTH_SUCCESSFUL=paramiko.pkey-module.html#AUTH_SUCCESSFUL,Variable paramiko.rsakey.AUTH_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_SUCCESSFUL,Variable paramiko.server.AUTH_SUCCESSFUL=paramiko.server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp.AUTH_SUCCESSFUL=paramiko.sftp-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_SUCCESSFUL,Variable paramiko.transport.AUTH_SUCCESSFUL=paramiko.transport-module.html#AUTH_SUCCESSFUL,Variable paramiko.util.AUTH_SUCCESSFUL=paramiko.util-module.html#AUTH_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_SUCCESSFUL
paramiko.channel.AUTH_SUCCESSFUL
paramiko.client.AUTH_SUCCESSFUL
@@ -699,7 +699,7 @@ paramiko.util.AUTH_SUCCESSFUL" class="py-name" href="#" onclick="return doclink(
</div><a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._interactive_query"></a><div id="AuthHandler._interactive_query-def"><a name="L244"></a><tt class="py-lineno">244</tt> <a class="py-toggle" href="#" id="AuthHandler._interactive_query-toggle" onclick="return toggle('AuthHandler._interactive_query');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_interactive_query">_interactive_query</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">q</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._interactive_query-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._interactive_query-expanded"><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-comment"># make interactive query instead of response</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-127', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-127', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-128', 'add_byte', 'link-28');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-129" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_INFO_REQUEST=paramiko.auth_handler-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.channel.MSG_USERAUTH_INFO_REQUEST=paramiko.channel-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.client.MSG_USERAUTH_INFO_REQUEST=paramiko.client-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.common.MSG_USERAUTH_INFO_REQUEST=paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.dsskey.MSG_USERAUTH_INFO_REQUEST=paramiko.dsskey-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.hostkeys.MSG_USERAUTH_INFO_REQUEST=paramiko.hostkeys-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.kex_gex.MSG_USERAUTH_INFO_REQUEST=paramiko.kex_gex-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.kex_group1.MSG_USERAUTH_INFO_REQUEST=paramiko.kex_group1-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.packet.MSG_USERAUTH_INFO_REQUEST=paramiko.packet-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.pkey.MSG_USERAUTH_INFO_REQUEST=paramiko.pkey-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.rsakey.MSG_USERAUTH_INFO_REQUEST=paramiko.rsakey-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.server.MSG_USERAUTH_INFO_REQUEST=paramiko.server-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_attr.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_attr-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_client.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_client-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_file.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_file-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_handle.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_handle-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_server.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_server-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.sftp_si.MSG_USERAUTH_INFO_REQUEST=paramiko.sftp_si-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.transport.MSG_USERAUTH_INFO_REQUEST=paramiko.transport-module.html#MSG_USERAUTH_INFO_REQUEST,Variable paramiko.util.MSG_USERAUTH_INFO_REQUEST=paramiko.util-module.html#MSG_USERAUTH_INFO_REQUEST"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_REQUEST
paramiko.channel.MSG_USERAUTH_INFO_REQUEST
paramiko.client.MSG_USERAUTH_INFO_REQUEST
@@ -734,7 +734,7 @@ paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doc
<a name="AuthHandler._parse_userauth_request"></a><div id="AuthHandler._parse_userauth_request-def"><a name="L257"></a><tt class="py-lineno">257</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_request-toggle" onclick="return toggle('AuthHandler._parse_userauth_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_parse_userauth_request">_parse_userauth_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._parse_userauth_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_request-expanded"><a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-138', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-comment"># er, uh... what?</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-139', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-139', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-140', 'add_byte', 'link-28');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-141" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_FAILURE
paramiko.channel.MSG_USERAUTH_FAILURE
paramiko.client.MSG_USERAUTH_FAILURE
@@ -762,7 +762,7 @@ paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doc
<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt><tt class="py-op">:</tt> </tt>
<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-comment"># ignore</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-145', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-146', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-147', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -827,12 +827,12 @@ paramiko.util.WARNING" class="py-name" href="#" onclick="return doclink('link-15
<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">password</tt> <tt class="py-op">=</tt> <tt class="py-name">password</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-156', 'decode', 'link-156');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-comment"># some clients/servers expect non-utf-8 passwords!</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># in this case, just return the raw byte string.</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-comment"># in this case, just return the raw byte string.</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">changereq</tt><tt class="py-op">:</tt> </tt>
<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-comment"># always treated as failure, since we don't support changing passwords, but collect</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># the list of valid auth types from the callback anyway</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-157', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-158" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-comment"># the list of valid auth types from the callback anyway</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-157', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-158" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -940,7 +940,7 @@ paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-174',
<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_disconnect_no_more_auth</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-comment"># first check if this key is okay... if not, we can skip the verify</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-175', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name" targets="Method paramiko.ServerInterface.check_auth_publickey()=paramiko.ServerInterface-class.html#check_auth_publickey"><a title="paramiko.ServerInterface.check_auth_publickey" class="py-name" href="#" onclick="return doclink('link-176', 'check_auth_publickey', 'link-176');">check_auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-175', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name" targets="Method paramiko.ServerInterface.check_auth_publickey()=paramiko.ServerInterface-class.html#check_auth_publickey"><a title="paramiko.ServerInterface.check_auth_publickey" class="py-name" href="#" onclick="return doclink('link-176', 'check_auth_publickey', 'link-176');">check_auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">result</tt> <tt class="py-op">!=</tt> <tt id="link-177" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
paramiko.channel.AUTH_FAILED
paramiko.client.AUTH_FAILED
@@ -963,10 +963,10 @@ paramiko.sftp_si.AUTH_FAILED
paramiko.transport.AUTH_FAILED
paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-177', 'AUTH_FAILED', 'link-161');">AUTH_FAILED</a></tt><tt class="py-op">:</tt> </tt>
<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-comment"># key is okay, verify it</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sig_attached</tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sig_attached</tt><tt class="py-op">:</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-comment"># client wants to know if this key is acceptable, before it</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># signs anything... send special "ok" message</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-178" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-178', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-comment"># signs anything... send special "ok" message</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-178" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-178', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-179', 'add_byte', 'link-28');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-180" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_PK_OK=paramiko.auth_handler-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.channel.MSG_USERAUTH_PK_OK=paramiko.channel-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.client.MSG_USERAUTH_PK_OK=paramiko.client-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.common.MSG_USERAUTH_PK_OK=paramiko.common-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.dsskey.MSG_USERAUTH_PK_OK=paramiko.dsskey-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.hostkeys.MSG_USERAUTH_PK_OK=paramiko.hostkeys-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.kex_gex.MSG_USERAUTH_PK_OK=paramiko.kex_gex-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.kex_group1.MSG_USERAUTH_PK_OK=paramiko.kex_group1-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.packet.MSG_USERAUTH_PK_OK=paramiko.packet-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.pkey.MSG_USERAUTH_PK_OK=paramiko.pkey-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.rsakey.MSG_USERAUTH_PK_OK=paramiko.rsakey-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.server.MSG_USERAUTH_PK_OK=paramiko.server-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp.MSG_USERAUTH_PK_OK=paramiko.sftp-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_attr.MSG_USERAUTH_PK_OK=paramiko.sftp_attr-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_client.MSG_USERAUTH_PK_OK=paramiko.sftp_client-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_file.MSG_USERAUTH_PK_OK=paramiko.sftp_file-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_handle.MSG_USERAUTH_PK_OK=paramiko.sftp_handle-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_server.MSG_USERAUTH_PK_OK=paramiko.sftp_server-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.sftp_si.MSG_USERAUTH_PK_OK=paramiko.sftp_si-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.transport.MSG_USERAUTH_PK_OK=paramiko.transport-module.html#MSG_USERAUTH_PK_OK,Variable paramiko.util.MSG_USERAUTH_PK_OK=paramiko.util-module.html#MSG_USERAUTH_PK_OK"><a title="paramiko.auth_handler.MSG_USERAUTH_PK_OK
paramiko.channel.MSG_USERAUTH_PK_OK
paramiko.client.MSG_USERAUTH_PK_OK
@@ -1046,12 +1046,12 @@ paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('lin
<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-192', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name" targets="Method paramiko.ServerInterface.check_auth_interactive()=paramiko.ServerInterface-class.html#check_auth_interactive"><a title="paramiko.ServerInterface.check_auth_interactive" class="py-name" href="#" onclick="return doclink('link-193', 'check_auth_interactive', 'link-193');">check_auth_interactive</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">submethods</tt><tt class="py-op">)</tt> </tt>
<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-name">InteractiveQuery</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-comment"># make interactive query instead of response</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_interactive_query</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_interactive_query</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-194', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="paramiko.ServerInterface.check_auth_none" class="py-name" href="#" onclick="return doclink('link-195', 'check_auth_none', 'link-153');">check_auth_none</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">)</tt> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-comment"># okay, send result</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_auth_result</tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_auth_result</tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
</div><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._parse_userauth_success"></a><div id="AuthHandler._parse_userauth_success-def"><a name="L351"></a><tt class="py-lineno">351</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_success-toggle" onclick="return toggle('AuthHandler._parse_userauth_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_parse_userauth_success">_parse_userauth_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._parse_userauth_success-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_success-expanded"><a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-196', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="paramiko.auth_handler.INFO
@@ -1133,28 +1133,28 @@ paramiko.transport.DEBUG
paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-205', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Methods: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">authlist</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-206', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="paramiko.ssh_exception.PartialAuthentication" class="py-name" href="#" onclick="return doclink('link-207', 'PartialAuthentication', 'link-12');">PartialAuthentication</a></tt><tt class="py-op">(</tt><tt class="py-name">authlist</tt><tt class="py-op">)</tt> </tt>
<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_method</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">authlist</tt><tt class="py-op">:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-208', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-209" class="py-name"><a title="paramiko.auth_handler.INFO
-paramiko.channel.INFO
-paramiko.client.INFO
-paramiko.common.INFO
-paramiko.dsskey.INFO
-paramiko.hostkeys.INFO
-paramiko.kex_gex.INFO
-paramiko.kex_group1.INFO
-paramiko.logging22.INFO
-paramiko.packet.INFO
-paramiko.pkey.INFO
-paramiko.rsakey.INFO
-paramiko.server.INFO
-paramiko.sftp.INFO
-paramiko.sftp_attr.INFO
-paramiko.sftp_client.INFO
-paramiko.sftp_file.INFO
-paramiko.sftp_handle.INFO
-paramiko.sftp_server.INFO
-paramiko.sftp_si.INFO
-paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-209', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Authentication type (%s) not permitted.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_method</tt><tt class="py-op">)</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-208', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-209" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.channel.DEBUG
+paramiko.client.DEBUG
+paramiko.common.DEBUG
+paramiko.dsskey.DEBUG
+paramiko.hostkeys.DEBUG
+paramiko.kex_gex.DEBUG
+paramiko.kex_group1.DEBUG
+paramiko.logging22.DEBUG
+paramiko.packet.DEBUG
+paramiko.pkey.DEBUG
+paramiko.rsakey.DEBUG
+paramiko.server.DEBUG
+paramiko.sftp.DEBUG
+paramiko.sftp_attr.DEBUG
+paramiko.sftp_client.DEBUG
+paramiko.sftp_file.DEBUG
+paramiko.sftp_handle.DEBUG
+paramiko.sftp_server.DEBUG
+paramiko.sftp_si.DEBUG
+paramiko.transport.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-209', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Authentication type (%s) not permitted.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_method</tt><tt class="py-op">)</tt> </tt>
<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-210', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-211" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
@@ -1234,7 +1234,7 @@ paramiko.sftp_si.INFO
paramiko.transport.INFO
paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-220', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth banner: '</tt> <tt class="py-op">+</tt> <tt class="py-name">banner</tt><tt class="py-op">)</tt> </tt>
</div><a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-comment"># who cares.</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt>
<a name="AuthHandler._parse_userauth_info_request"></a><div id="AuthHandler._parse_userauth_info_request-def"><a name="L382"></a><tt class="py-lineno">382</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_info_request-toggle" onclick="return toggle('AuthHandler._parse_userauth_info_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_parse_userauth_info_request">_parse_userauth_info_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AuthHandler._parse_userauth_info_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_info_request-expanded"><a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_method</tt> <tt class="py-op">!=</tt> <tt class="py-string">'keyboard-interactive'</tt><tt class="py-op">:</tt> </tt>
<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-221" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-221', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Illegal info request from server'</tt><tt class="py-op">)</tt> </tt>
@@ -1284,7 +1284,7 @@ paramiko.util.MSG_USERAUTH_INFO_RESPONSE" class="py-name" href="#" onclick="retu
<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-238', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name" targets="Method paramiko.ServerInterface.check_auth_interactive_response()=paramiko.ServerInterface-class.html#check_auth_interactive_response"><a title="paramiko.ServerInterface.check_auth_interactive_response" class="py-name" href="#" onclick="return doclink('link-239', 'check_auth_interactive_response', 'link-239');">check_auth_interactive_response</a></tt><tt class="py-op">(</tt><tt class="py-name">responses</tt><tt class="py-op">)</tt> </tt>
<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">InteractiveQuery</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-comment"># make interactive query instead of response</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_interactive_query</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_interactive_query</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_auth_result</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_username</tt><tt class="py-op">,</tt> <tt class="py-string">'keyboard-interactive'</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
</div><a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
@@ -1492,7 +1492,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ber-module.html b/docs/paramiko.ber-module.html
index 08a43d4..e5cab0a 100644
--- a/docs/paramiko.ber-module.html
+++ b/docs/paramiko.ber-module.html
@@ -78,6 +78,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -104,7 +120,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ber-pysrc.html b/docs/paramiko.ber-pysrc.html
index d6d4e84..2eb9d7c 100644
--- a/docs/paramiko.ber-pysrc.html
+++ b/docs/paramiko.ber-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.ber-module.html" onclick="show_private();">Module paramiko.ber</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-0', 'util', 'link-0');">util</a></tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> </tt>
@@ -105,7 +105,7 @@
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ident</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">31</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">31</tt><tt class="py-op">:</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-comment"># identifier &gt; 30</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">ident</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">ident</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
@@ -115,31 +115,31 @@
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># now fetch length</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x80</tt><tt class="py-op">:</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-comment"># more complimicated...</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># FIXME: theoretically should handle indefinite-length (0x80)</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x7f</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: theoretically should handle indefinite-length (0x80)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x7f</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-name">t</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-2', 'util', 'link-0');">util</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-3', 'inflate_long', 'link-3');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-name">t</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-name">t</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-name">size</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-comment"># can't fit</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-name">size</tt><tt class="py-op">]</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-name">size</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-comment"># now switch on id</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">ident</tt> <tt class="py-op">==</tt> <tt class="py-number">0x30</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ident</tt> <tt class="py-op">==</tt> <tt class="py-number">0x30</tt><tt class="py-op">:</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># sequence</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Static Method paramiko.ber.BER.decode_sequence()=paramiko.ber.BER-class.html#decode_sequence"><a title="paramiko.ber.BER.decode_sequence" class="py-name" href="#" onclick="return doclink('link-4', 'decode_sequence', 'link-4');">decode_sequence</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Static Method paramiko.ber.BER.decode_sequence()=paramiko.ber.BER-class.html#decode_sequence"><a title="paramiko.ber.BER.decode_sequence" class="py-name" href="#" onclick="return doclink('link-4', 'decode_sequence', 'link-4');">decode_sequence</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ident</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># int</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt id="link-5" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-5', 'util', 'link-0');">util</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-6', 'inflate_long', 'link-3');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-5" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-5', 'util', 'link-0');">util</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-6', 'inflate_long', 'link-3');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-comment"># 1: boolean (00 false, otherwise true)</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt id="link-7" class="py-name" targets="Class paramiko.ber.BERException=paramiko.ber.BERException-class.html"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-7', 'BERException', 'link-7');">BERException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown ber encoding type %d (robey is lazy)'</tt> <tt class="py-op">%</tt> <tt class="py-name">ident</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-7" class="py-name" targets="Class paramiko.ber.BERException=paramiko.ber.BERException-class.html"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-7', 'BERException', 'link-7');">BERException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown ber encoding type %d (robey is lazy)'</tt> <tt class="py-op">%</tt> <tt class="py-name">ident</tt><tt class="py-op">)</tt> </tt>
</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="BER.decode_sequence"></a><div id="BER.decode_sequence-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="BER.decode_sequence-toggle" onclick="return toggle('BER.decode_sequence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#decode_sequence">decode_sequence</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BER.decode_sequence-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.decode_sequence-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
@@ -154,7 +154,7 @@
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
<a name="BER.encode_tlv"></a><div id="BER.encode_tlv-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="BER.encode_tlv-toggle" onclick="return toggle('BER.encode_tlv');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#encode_tlv">encode_tlv</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">ident</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BER.encode_tlv-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.encode_tlv-expanded"><a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># no need to support ident &gt; 31 here</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">+=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-name">ident</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">+=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-name">ident</tt><tt class="py-op">)</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0x7f</tt><tt class="py-op">:</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">lenstr</tt> <tt class="py-op">=</tt> <tt id="link-12" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-12', 'util', 'link-0');">util</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-13', 'deflate_long', 'link-13');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">+=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-number">0x80</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">lenstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">lenstr</tt> </tt>
@@ -216,7 +216,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ber.BER-class.html b/docs/paramiko.ber.BER-class.html
index e376084..b14296b 100644
--- a/docs/paramiko.ber.BER-class.html
+++ b/docs/paramiko.ber.BER-class.html
@@ -195,12 +195,15 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
- <code>__setattr__</code>
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -372,7 +375,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ber.BERException-class.html b/docs/paramiko.ber.BERException-class.html
index d1815d3..a84ea0b 100644
--- a/docs/paramiko.ber.BERException-class.html
+++ b/docs/paramiko.ber.BERException-class.html
@@ -84,15 +84,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -143,7 +148,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.buffered_pipe-module.html b/docs/paramiko.buffered_pipe-module.html
index b427eaa..7e1fdf1 100644
--- a/docs/paramiko.buffered_pipe-module.html
+++ b/docs/paramiko.buffered_pipe-module.html
@@ -88,6 +88,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -114,7 +130,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.buffered_pipe-pysrc.html b/docs/paramiko.buffered_pipe-pysrc.html
index 4fed6e8..f19abc7 100644
--- a/docs/paramiko.buffered_pipe-pysrc.html
+++ b/docs/paramiko.buffered_pipe-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.buffered_pipe-module.html" onclick="show_private();">Module paramiko.buffered_pipe</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Attempt to generalize the "feeder" part of a Channel: an object which can be</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">read from and closed, but is reading from a buffer fed by another thread. The</tt> </tt>
@@ -191,11 +191,11 @@ paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink(
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-comment"># should we block?</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">==</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">==</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-3" class="py-name" targets="Class paramiko.buffered_pipe.PipeTimeout=paramiko.buffered_pipe.PipeTimeout-class.html"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-3', 'PipeTimeout', 'link-3');">PipeTimeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-comment"># loop here in case we get woken up but a different thread has</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># grabbed everything in the buffer.</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-comment"># grabbed everything in the buffer.</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">then</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cv</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
@@ -204,7 +204,7 @@ paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink(
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-4" class="py-name"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-4', 'PipeTimeout', 'link-3');">PipeTimeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-comment"># something's in the buffer and we have the lock!</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">nbytes</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">nbytes</tt><tt class="py-op">:</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">.</tt><tt class="py-name">tostring</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
@@ -301,7 +301,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.buffered_pipe.BufferedPipe-class.html b/docs/paramiko.buffered_pipe.BufferedPipe-class.html
index 97b4486..9b2e64e 100644
--- a/docs/paramiko.buffered_pipe.BufferedPipe-class.html
+++ b/docs/paramiko.buffered_pipe.BufferedPipe-class.html
@@ -219,6 +219,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -226,7 +227,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -491,7 +494,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.buffered_pipe.PipeTimeout-class.html b/docs/paramiko.buffered_pipe.PipeTimeout-class.html
index 60ec323..3795660 100644
--- a/docs/paramiko.buffered_pipe.PipeTimeout-class.html
+++ b/docs/paramiko.buffered_pipe.PipeTimeout-class.html
@@ -98,13 +98,18 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__setstate__</code>
+ <code>__setstate__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -122,11 +127,11 @@ exceptions.BaseException --+
<p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.EnvironmentError</code></b>:
<code>errno</code>,
<code>filename</code>,
- <code>message</code>,
<code>strerror</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
- <code>args</code>
+ <code>args</code>,
+ <code>message</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__class__</code>
@@ -160,7 +165,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.channel-module.html b/docs/paramiko.channel-module.html
index f8c74ce..df1a287 100644
--- a/docs/paramiko.channel-module.html
+++ b/docs/paramiko.channel-module.html
@@ -438,6 +438,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -525,7 +532,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.channel-pysrc.html b/docs/paramiko.channel-pysrc.html
index 614cab3..6f38ce6 100644
--- a/docs/paramiko.channel-pysrc.html
+++ b/docs/paramiko.channel-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.channel-module.html" onclick="show_private();">Module paramiko.channel</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Abstraction for an SSH2 channel.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -94,7 +94,7 @@ paramiko.file" class="py-name" href="#" onclick="return doclink('link-11', 'file
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-comment"># lower bound on the max packet size we'll accept from the remote host</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-19" class="py-name" targets="Variable paramiko.channel.MIN_PACKET_SIZE=paramiko.channel-module.html#MIN_PACKET_SIZE"><a title="paramiko.channel.MIN_PACKET_SIZE" class="py-name" href="#" onclick="return doclink('link-19', 'MIN_PACKET_SIZE', 'link-19');">MIN_PACKET_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt id="link-19" class="py-name" targets="Variable paramiko.channel.MIN_PACKET_SIZE=paramiko.channel-module.html#MIN_PACKET_SIZE"><a title="paramiko.channel.MIN_PACKET_SIZE" class="py-name" href="#" onclick="return doclink('link-19', 'MIN_PACKET_SIZE', 'link-19');">MIN_PACKET_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
<a name="Channel"></a><div id="Channel-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="Channel-toggle" onclick="return toggle('Channel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html">Channel</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -147,13 +147,14 @@ paramiko.file" class="py-name" href="#" onclick="return doclink('link-11', 'file
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Class paramiko.logging22.logger=paramiko.logging22.logger-class.html"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-23', 'logger', 'link-23');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-24', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Function paramiko.util.get_logger()=paramiko.util-module.html#get_logger"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-25', 'get_logger', 'link-25');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-string">'paramiko.transport'</tt><tt class="py-op">)</tt> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
-<a name="Channel.__del__"></a><div id="Channel.__del__-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="Channel.__del__-toggle" onclick="return toggle('Channel.__del__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#__del__">__del__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.__del__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.__del__-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event_ready</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
+<a name="Channel.__del__"></a><div id="Channel.__del__-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="Channel.__del__-toggle" onclick="return toggle('Channel.__del__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#__del__">__del__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.__del__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.__del__-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -165,52 +166,52 @@ paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-26', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> </tt>
-<a name="Channel.__repr__"></a><div id="Channel.__repr__-def"><a name="L103"></a><tt class="py-lineno"> 103</tt> <a class="py-toggle" href="#" id="Channel.__repr__-toggle" onclick="return toggle('Channel.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.__repr__-expanded"><a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"><tt class="py-docstring"> Return a string representation of this object, for debugging.</tt> </tt>
-<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;paramiko.Channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (closed)'</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (EOF received)'</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (EOF sent)'</tt> </tt>
-<a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (open) window=%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' in-buffer=%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' -&gt; '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-27', 'transport', 'link-20');">transport</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt;'</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> </tt>
-<a name="Channel.get_pty"></a><div id="Channel.get_pty-def"><a name="L124"></a><tt class="py-lineno"> 124</tt> <a class="py-toggle" href="#" id="Channel.get_pty-toggle" onclick="return toggle('Channel.get_pty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_pty">get_pty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">term</tt><tt class="py-op">=</tt><tt class="py-string">'vt100'</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.get_pty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_pty-expanded"><a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt class="py-docstring"> Request a pseudo-terminal from the server. This is usually used right</tt> </tt>
-<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> after creating a client channel, to ask the server to provide some</tt> </tt>
-<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt class="py-docstring"> basic terminal semantics for a shell invoked with L{invoke_shell}.</tt> </tt>
-<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt class="py-docstring"> It isn't necessary (or desirable) to call this method if you're going</tt> </tt>
-<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt class="py-docstring"> to exectue a single command with L{exec_command}.</tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt class="py-docstring"> @param term: the terminal type to emulate (for example, C{'vt100'})</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt class="py-docstring"> @type term: str</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt class="py-docstring"> @param width: width (in characters) of the terminal screen</tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt class="py-docstring"> @param height: height (in characters) of the terminal screen</tt> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
-<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-28" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-28', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-29', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-30', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_REQUEST=paramiko.auth_handler-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.channel.MSG_CHANNEL_REQUEST=paramiko.channel-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.client.MSG_CHANNEL_REQUEST=paramiko.client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.common.MSG_CHANNEL_REQUEST=paramiko.common-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.dsskey.MSG_CHANNEL_REQUEST=paramiko.dsskey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.hostkeys.MSG_CHANNEL_REQUEST=paramiko.hostkeys-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_gex.MSG_CHANNEL_REQUEST=paramiko.kex_gex-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_group1.MSG_CHANNEL_REQUEST=paramiko.kex_group1-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.packet.MSG_CHANNEL_REQUEST=paramiko.packet-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.pkey.MSG_CHANNEL_REQUEST=paramiko.pkey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.rsakey.MSG_CHANNEL_REQUEST=paramiko.rsakey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.server.MSG_CHANNEL_REQUEST=paramiko.server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp.MSG_CHANNEL_REQUEST=paramiko.sftp-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_attr.MSG_CHANNEL_REQUEST=paramiko.sftp_attr-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_client.MSG_CHANNEL_REQUEST=paramiko.sftp_client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_file.MSG_CHANNEL_REQUEST=paramiko.sftp_file-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_handle.MSG_CHANNEL_REQUEST=paramiko.sftp_handle-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_server.MSG_CHANNEL_REQUEST=paramiko.sftp_server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_si.MSG_CHANNEL_REQUEST=paramiko.sftp_si-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.transport.MSG_CHANNEL_REQUEST=paramiko.transport-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.util.MSG_CHANNEL_REQUEST=paramiko.util-module.html#MSG_CHANNEL_REQUEST"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+<a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"> </tt>
+<a name="Channel.__repr__"></a><div id="Channel.__repr__-def"><a name="L104"></a><tt class="py-lineno"> 104</tt> <a class="py-toggle" href="#" id="Channel.__repr__-toggle" onclick="return toggle('Channel.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.__repr__-expanded"><a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"><tt class="py-docstring"> Return a string representation of this object, for debugging.</tt> </tt>
+<a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;paramiko.Channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (closed)'</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (EOF received)'</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (EOF sent)'</tt> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (open) window=%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' in-buffer=%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' -&gt; '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-27', 'transport', 'link-20');">transport</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt;'</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"> </tt>
+<a name="Channel.get_pty"></a><div id="Channel.get_pty-def"><a name="L125"></a><tt class="py-lineno"> 125</tt> <a class="py-toggle" href="#" id="Channel.get_pty-toggle" onclick="return toggle('Channel.get_pty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_pty">get_pty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">term</tt><tt class="py-op">=</tt><tt class="py-string">'vt100'</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.get_pty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_pty-expanded"><a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> Request a pseudo-terminal from the server. This is usually used right</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt class="py-docstring"> after creating a client channel, to ask the server to provide some</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt class="py-docstring"> basic terminal semantics for a shell invoked with L{invoke_shell}.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt class="py-docstring"> It isn't necessary (or desirable) to call this method if you're going</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt class="py-docstring"> to exectue a single command with L{exec_command}.</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt class="py-docstring"> @param term: the terminal type to emulate (for example, C{'vt100'})</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt class="py-docstring"> @type term: str</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt class="py-docstring"> @param width: width (in characters) of the terminal screen</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt class="py-docstring"> @param height: height (in characters) of the terminal screen</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-28" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-28', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-29', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-30', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_REQUEST=paramiko.auth_handler-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.channel.MSG_CHANNEL_REQUEST=paramiko.channel-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.client.MSG_CHANNEL_REQUEST=paramiko.client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.common.MSG_CHANNEL_REQUEST=paramiko.common-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.dsskey.MSG_CHANNEL_REQUEST=paramiko.dsskey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.hostkeys.MSG_CHANNEL_REQUEST=paramiko.hostkeys-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_gex.MSG_CHANNEL_REQUEST=paramiko.kex_gex-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_group1.MSG_CHANNEL_REQUEST=paramiko.kex_group1-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.packet.MSG_CHANNEL_REQUEST=paramiko.packet-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.pkey.MSG_CHANNEL_REQUEST=paramiko.pkey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.rsakey.MSG_CHANNEL_REQUEST=paramiko.rsakey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.server.MSG_CHANNEL_REQUEST=paramiko.server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp.MSG_CHANNEL_REQUEST=paramiko.sftp-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_attr.MSG_CHANNEL_REQUEST=paramiko.sftp_attr-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_client.MSG_CHANNEL_REQUEST=paramiko.sftp_client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_file.MSG_CHANNEL_REQUEST=paramiko.sftp_file-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_handle.MSG_CHANNEL_REQUEST=paramiko.sftp_handle-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_server.MSG_CHANNEL_REQUEST=paramiko.sftp_server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_si.MSG_CHANNEL_REQUEST=paramiko.sftp_si-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.transport.MSG_CHANNEL_REQUEST=paramiko.transport-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.util.MSG_CHANNEL_REQUEST=paramiko.util-module.html#MSG_CHANNEL_REQUEST"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -231,42 +232,39 @@ paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-31', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-32', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-33', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'pty-req'</tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.Message.add_boolean()=paramiko.Message-class.html#add_boolean"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-34', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-35', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">term</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-36', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">)</tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-37', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
-<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"> <tt class="py-comment"># pixel height, width (usually useless)</tt> </tt>
-<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-38', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-39', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-40', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method paramiko.HostKeys.clear()=paramiko.HostKeys-class.html#clear,Method paramiko.pipe.OrPipe.clear()=paramiko.pipe.OrPipe-class.html#clear,Method paramiko.pipe.PosixPipe.clear()=paramiko.pipe.PosixPipe-class.html#clear,Method paramiko.pipe.WindowsPipe.clear()=paramiko.pipe.WindowsPipe-class.html#clear"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-41', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-42', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"> </tt>
-<a name="Channel.invoke_shell"></a><div id="Channel.invoke_shell-def"><a name="L159"></a><tt class="py-lineno"> 159</tt> <a class="py-toggle" href="#" id="Channel.invoke_shell-toggle" onclick="return toggle('Channel.invoke_shell');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#invoke_shell">invoke_shell</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.invoke_shell-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.invoke_shell-expanded"><a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt class="py-docstring"> Request an interactive shell session on this channel. If the server</tt> </tt>
-<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-docstring"> allows it, the channel will then be directly connected to the stdin,</tt> </tt>
-<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt class="py-docstring"> stdout, and stderr of the shell.</tt> </tt>
-<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt class="py-docstring"> Normally you would call L{get_pty} before this, in which case the</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"><tt class="py-docstring"> shell will operate through the pty, and the channel will be connected</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"><tt class="py-docstring"> to the stdin and stdout of the pty.</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt class="py-docstring"> When the shell exits, the channel will be closed and can't be reused.</tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt class="py-docstring"> You must open a new channel if you wish to open another shell.</tt> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
-<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
-<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-43" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-43', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-44', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-45', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-32', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-33', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'pty-req'</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.Message.add_boolean()=paramiko.Message-class.html#add_boolean"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-34', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-35', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">term</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-36', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">)</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-37', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"> <tt class="py-comment"># pixel height, width (usually useless)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-38', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-39', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-40', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-41', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"> </tt>
+<a name="Channel.invoke_shell"></a><div id="Channel.invoke_shell-def"><a name="L160"></a><tt class="py-lineno"> 160</tt> <a class="py-toggle" href="#" id="Channel.invoke_shell-toggle" onclick="return toggle('Channel.invoke_shell');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#invoke_shell">invoke_shell</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.invoke_shell-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.invoke_shell-expanded"><a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-docstring"> Request an interactive shell session on this channel. If the server</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt class="py-docstring"> allows it, the channel will then be directly connected to the stdin,</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt class="py-docstring"> stdout, and stderr of the shell.</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"><tt class="py-docstring"> Normally you would call L{get_pty} before this, in which case the</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"><tt class="py-docstring"> shell will operate through the pty, and the channel will be connected</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt class="py-docstring"> to the stdin and stdout of the pty.</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt class="py-docstring"> When the shell exits, the channel will be closed and can't be reused.</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt class="py-docstring"> You must open a new channel if you wish to open another shell.</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-42" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-42', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-43', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-44', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -286,37 +284,34 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-46', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-47', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-48', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'shell'</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-49', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-50', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-51', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"> </tt>
-<a name="Channel.exec_command"></a><div id="Channel.exec_command-def"><a name="L186"></a><tt class="py-lineno"> 186</tt> <a class="py-toggle" href="#" id="Channel.exec_command-toggle" onclick="return toggle('Channel.exec_command');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#exec_command">exec_command</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.exec_command-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.exec_command-expanded"><a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-docstring"> Execute a command on the server. If the server allows it, the channel</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-docstring"> will then be directly connected to the stdin, stdout, and stderr of</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> the command being executed.</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"> When the command finishes executing, the channel will be closed and</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> can't be reused. You must open a new channel if you wish to execute</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> another command.</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-docstring"> @param command: a shell command to execute.</tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-docstring"> @type command: str</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
-<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
-<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-52" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-52', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-53', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-54', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-55" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-45', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-46', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-47', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'shell'</tt><tt class="py-op">)</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-48', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-49', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"> </tt>
+<a name="Channel.exec_command"></a><div id="Channel.exec_command-def"><a name="L187"></a><tt class="py-lineno"> 187</tt> <a class="py-toggle" href="#" id="Channel.exec_command-toggle" onclick="return toggle('Channel.exec_command');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#exec_command">exec_command</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.exec_command-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.exec_command-expanded"><a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-docstring"> Execute a command on the server. If the server allows it, the channel</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> will then be directly connected to the stdin, stdout, and stderr of</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-docstring"> the command being executed.</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> When the command finishes executing, the channel will be closed and</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> can't be reused. You must open a new channel if you wish to execute</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"> another command.</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-docstring"> @param command: a shell command to execute.</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-docstring"> @type command: str</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-50" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-50', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-51', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-52', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -336,37 +331,34 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-55', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-56', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-57', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'exec'</tt><tt class="py-op">)</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-58', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-59', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-60', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-61', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> </tt>
-<a name="Channel.invoke_subsystem"></a><div id="Channel.invoke_subsystem-def"><a name="L214"></a><tt class="py-lineno"> 214</tt> <a class="py-toggle" href="#" id="Channel.invoke_subsystem-toggle" onclick="return toggle('Channel.invoke_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#invoke_subsystem">invoke_subsystem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">subsystem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.invoke_subsystem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.invoke_subsystem-expanded"><a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"><tt class="py-docstring"> Request a subsystem on the server (for example, C{sftp}). If the</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"><tt class="py-docstring"> server allows it, the channel will then be directly connected to the</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-docstring"> requested subsystem.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-docstring"> When the subsystem finishes, the channel will be closed and can't be</tt> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-docstring"> reused.</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"><tt class="py-docstring"> @param subsystem: name of the subsystem being requested.</tt> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-docstring"> @type subsystem: str</tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-62', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-63', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-64', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-53', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-54', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-55', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'exec'</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-56', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-57', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-58', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> </tt>
+<a name="Channel.invoke_subsystem"></a><div id="Channel.invoke_subsystem-def"><a name="L215"></a><tt class="py-lineno"> 215</tt> <a class="py-toggle" href="#" id="Channel.invoke_subsystem-toggle" onclick="return toggle('Channel.invoke_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#invoke_subsystem">invoke_subsystem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">subsystem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.invoke_subsystem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.invoke_subsystem-expanded"><a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"><tt class="py-docstring"> Request a subsystem on the server (for example, C{sftp}). If the</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-docstring"> server allows it, the channel will then be directly connected to the</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-docstring"> requested subsystem.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-docstring"> When the subsystem finishes, the channel will be closed and can't be</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-docstring"> reused.</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-docstring"> @param subsystem: name of the subsystem being requested.</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-docstring"> @type subsystem: str</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-59" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-59', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-60', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-61', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -386,35 +378,32 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-65', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-66', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-67', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'subsystem'</tt><tt class="py-op">)</tt> </tt>
-<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-68', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-69', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">subsystem</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-70', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-71', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> </tt>
-<a name="Channel.resize_pty"></a><div id="Channel.resize_pty-def"><a name="L241"></a><tt class="py-lineno"> 241</tt> <a class="py-toggle" href="#" id="Channel.resize_pty-toggle" onclick="return toggle('Channel.resize_pty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#resize_pty">resize_pty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.resize_pty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.resize_pty-expanded"><a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"><tt class="py-docstring"> Resize the pseudo-terminal. This can be used to change the width and</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"><tt class="py-docstring"> height of the terminal emulation created in a previous L{get_pty} call.</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"> @param width: new width (in characters) of the terminal screen</tt> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-docstring"> @param height: new height (in characters) of the terminal screen</tt> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
-<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
-<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-72" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-72', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-73', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-74', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-62', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-63', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-64', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'subsystem'</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-65', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-66', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">subsystem</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-67', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"> </tt>
+<a name="Channel.resize_pty"></a><div id="Channel.resize_pty-def"><a name="L242"></a><tt class="py-lineno"> 242</tt> <a class="py-toggle" href="#" id="Channel.resize_pty-toggle" onclick="return toggle('Channel.resize_pty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#resize_pty">resize_pty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.resize_pty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.resize_pty-expanded"><a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"><tt class="py-docstring"> Resize the pseudo-terminal. This can be used to change the width and</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"> height of the terminal emulation created in a previous L{get_pty} call.</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-docstring"> @param width: new width (in characters) of the terminal screen</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-docstring"> @param height: new height (in characters) of the terminal screen</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request was rejected or the channel was</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt class="py-docstring"> closed</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-68" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-68', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-69', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-70', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-71" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -434,68 +423,63 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-75', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-76', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-77', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'window-change'</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-78', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-79', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-80', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
-<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-81', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-82', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-83', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-84', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> </tt>
-<a name="Channel.exit_status_ready"></a><div id="Channel.exit_status_ready-def"><a name="L268"></a><tt class="py-lineno"> 268</tt> <a class="py-toggle" href="#" id="Channel.exit_status_ready-toggle" onclick="return toggle('Channel.exit_status_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#exit_status_ready">exit_status_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.exit_status_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.exit_status_ready-expanded"><a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the remote process has exited and returned an exit</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-docstring"> status. You may use this to poll the process status if you don't</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"><tt class="py-docstring"> want to block in L{recv_exit_status}. Note that the server may not</tt> </tt>
-<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-docstring"> return an exit status in some cases (like bad servers).</tt> </tt>
-<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if L{recv_exit_status} will return immediately</tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.7.3</tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> </tt>
-<a name="Channel.recv_exit_status"></a><div id="Channel.recv_exit_status-def"><a name="L281"></a><tt class="py-lineno"> 281</tt> <a class="py-toggle" href="#" id="Channel.recv_exit_status-toggle" onclick="return toggle('Channel.recv_exit_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_exit_status">recv_exit_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.recv_exit_status-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_exit_status-expanded"><a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"><tt class="py-docstring"> Return the exit status from the process on the server. This is</tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"><tt class="py-docstring"> mostly useful for retrieving the reults of an L{exec_command}.</tt> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"><tt class="py-docstring"> If the command hasn't finished yet, this method will wait until</tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"><tt class="py-docstring"> it does, or until the channel is closed. If no exit status is</tt> </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"><tt class="py-docstring"> provided by the server, -1 is returned.</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-docstring"> @return: the exit code of the process on the server.</tt> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> </tt>
-</div><a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> </tt>
-<a name="Channel.send_exit_status"></a><div id="Channel.send_exit_status-def"><a name="L300"></a><tt class="py-lineno"> 300</tt> <a class="py-toggle" href="#" id="Channel.send_exit_status-toggle" onclick="return toggle('Channel.send_exit_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_exit_status">send_exit_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.send_exit_status-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_exit_status-expanded"><a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"><tt class="py-docstring"> Send the exit status of an executed command to the client. (This</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"><tt class="py-docstring"> really only makes sense in server mode.) Many clients expect to</tt> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"><tt class="py-docstring"> get some sort of status code back from an executed command after</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"><tt class="py-docstring"> it completes.</tt> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"><tt class="py-docstring"> @param status: the exit code of the process</tt> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"><tt class="py-docstring"> @type status: int</tt> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-comment"># in many cases, the channel will not still be open here.</tt> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># that's fine.</tt> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-85', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-86', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-71', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-72', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-73', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'window-change'</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-74', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-75', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">width</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-76', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-77', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-78', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-79', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"> </tt>
+<a name="Channel.exit_status_ready"></a><div id="Channel.exit_status_ready-def"><a name="L269"></a><tt class="py-lineno"> 269</tt> <a class="py-toggle" href="#" id="Channel.exit_status_ready-toggle" onclick="return toggle('Channel.exit_status_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#exit_status_ready">exit_status_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.exit_status_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.exit_status_ready-expanded"><a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the remote process has exited and returned an exit</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"><tt class="py-docstring"> status. You may use this to poll the process status if you don't</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-docstring"> want to block in L{recv_exit_status}. Note that the server may not</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-docstring"> return an exit status in some cases (like bad servers).</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if L{recv_exit_status} will return immediately</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.7.3</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> </tt>
+<a name="Channel.recv_exit_status"></a><div id="Channel.recv_exit_status-def"><a name="L282"></a><tt class="py-lineno"> 282</tt> <a class="py-toggle" href="#" id="Channel.recv_exit_status-toggle" onclick="return toggle('Channel.recv_exit_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_exit_status">recv_exit_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.recv_exit_status-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_exit_status-expanded"><a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"><tt class="py-docstring"> Return the exit status from the process on the server. This is</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"><tt class="py-docstring"> mostly useful for retrieving the reults of an L{exec_command}.</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"><tt class="py-docstring"> If the command hasn't finished yet, this method will wait until</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"><tt class="py-docstring"> it does, or until the channel is closed. If no exit status is</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"><tt class="py-docstring"> provided by the server, -1 is returned.</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"><tt class="py-docstring"> @return: the exit code of the process on the server.</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> </tt>
+</div><a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> </tt>
+<a name="Channel.send_exit_status"></a><div id="Channel.send_exit_status-def"><a name="L299"></a><tt class="py-lineno"> 299</tt> <a class="py-toggle" href="#" id="Channel.send_exit_status-toggle" onclick="return toggle('Channel.send_exit_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_exit_status">send_exit_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.send_exit_status-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_exit_status-expanded"><a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"><tt class="py-docstring"> Send the exit status of an executed command to the client. (This</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"><tt class="py-docstring"> really only makes sense in server mode.) Many clients expect to</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"><tt class="py-docstring"> get some sort of status code back from an executed command after</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"><tt class="py-docstring"> it completes.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"><tt class="py-docstring"> @param status: the exit code of the process</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"><tt class="py-docstring"> @type status: int</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-comment"># in many cases, the channel will not still be open here.</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-comment"># that's fine.</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-80', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-81', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -515,60 +499,60 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-87', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-88', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-89', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'exit-status'</tt><tt class="py-op">)</tt> </tt>
-<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-90', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-91', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-92', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> </tt>
-<a name="Channel.request_x11"></a><div id="Channel.request_x11-def"><a name="L322"></a><tt class="py-lineno"> 322</tt> <a class="py-toggle" href="#" id="Channel.request_x11-toggle" onclick="return toggle('Channel.request_x11');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#request_x11">request_x11</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">screen_number</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">auth_protocol</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">auth_cookie</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-param">single_connection</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.request_x11-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.request_x11-expanded"><a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"><tt class="py-docstring"> Request an x11 session on this channel. If the server allows it,</tt> </tt>
-<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"><tt class="py-docstring"> further x11 requests can be made from the server to the client,</tt> </tt>
-<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"><tt class="py-docstring"> when an x11 application is run in a shell session.</tt> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"><tt class="py-docstring"> From RFC4254::</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"><tt class="py-docstring"> It is RECOMMENDED that the 'x11 authentication cookie' that is</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"><tt class="py-docstring"> sent be a fake, random cookie, and that the cookie be checked and</tt> </tt>
-<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"><tt class="py-docstring"> replaced by the real cookie when a connection request is received.</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"><tt class="py-docstring"> If you omit the auth_cookie, a new secure random 128-bit value will be</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"><tt class="py-docstring"> generated, used, and returned. You will need to use this value to</tt> </tt>
-<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"><tt class="py-docstring"> verify incoming x11 requests and replace them with the actual local</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"><tt class="py-docstring"> x11 cookie (which requires some knoweldge of the x11 protocol).</tt> </tt>
-<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"><tt class="py-docstring"> If a handler is passed in, the handler is called from another thread</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"><tt class="py-docstring"> whenever a new x11 connection arrives. The default handler queues up</tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"><tt class="py-docstring"> incoming x11 connections, which may be retrieved using</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.accept}. The handler's calling signature is::</tt> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"><tt class="py-docstring"> handler(channel: Channel, (address: str, port: int))</tt> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"><tt class="py-docstring"> @param screen_number: the x11 screen number (0, 10, etc)</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"><tt class="py-docstring"> @type screen_number: int</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_protocol: the name of the X11 authentication method used;</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"><tt class="py-docstring"> if none is given, C{"MIT-MAGIC-COOKIE-1"} is used</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_protocol: str</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_cookie: hexadecimal string containing the x11 auth cookie;</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"><tt class="py-docstring"> if none is given, a secure random 128-bit value is generated</tt> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_cookie: str</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"><tt class="py-docstring"> @param single_connection: if True, only a single x11 connection will be</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"><tt class="py-docstring"> forwarded (by default, any number of x11 connections can arrive</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"><tt class="py-docstring"> over this session)</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"><tt class="py-docstring"> @type single_connection: bool</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: an optional handler to use for incoming X11 connections</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: function</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"><tt class="py-docstring"> @return: the auth_cookie used</tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-93" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-93', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">auth_protocol</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-name">auth_protocol</tt> <tt class="py-op">=</tt> <tt class="py-string">'MIT-MAGIC-COOKIE-1'</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">auth_cookie</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> <tt class="py-name">auth_cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">binascii</tt><tt class="py-op">.</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-94', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-82', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-83', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-84', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'exit-status'</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-85', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-86', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-87', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> </tt>
+<a name="Channel.request_x11"></a><div id="Channel.request_x11-def"><a name="L321"></a><tt class="py-lineno"> 321</tt> <a class="py-toggle" href="#" id="Channel.request_x11-toggle" onclick="return toggle('Channel.request_x11');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#request_x11">request_x11</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">screen_number</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">auth_protocol</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">auth_cookie</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-param">single_connection</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.request_x11-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.request_x11-expanded"><a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"><tt class="py-docstring"> Request an x11 session on this channel. If the server allows it,</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"><tt class="py-docstring"> further x11 requests can be made from the server to the client,</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"><tt class="py-docstring"> when an x11 application is run in a shell session.</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"><tt class="py-docstring"> From RFC4254::</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"><tt class="py-docstring"> It is RECOMMENDED that the 'x11 authentication cookie' that is</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"><tt class="py-docstring"> sent be a fake, random cookie, and that the cookie be checked and</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"><tt class="py-docstring"> replaced by the real cookie when a connection request is received.</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"><tt class="py-docstring"> If you omit the auth_cookie, a new secure random 128-bit value will be</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"><tt class="py-docstring"> generated, used, and returned. You will need to use this value to</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"><tt class="py-docstring"> verify incoming x11 requests and replace them with the actual local</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"><tt class="py-docstring"> x11 cookie (which requires some knoweldge of the x11 protocol).</tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"><tt class="py-docstring"> If a handler is passed in, the handler is called from another thread</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"><tt class="py-docstring"> whenever a new x11 connection arrives. The default handler queues up</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"><tt class="py-docstring"> incoming x11 connections, which may be retrieved using</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.accept}. The handler's calling signature is::</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"><tt class="py-docstring"> handler(channel: Channel, (address: str, port: int))</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"><tt class="py-docstring"> @param screen_number: the x11 screen number (0, 10, etc)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"><tt class="py-docstring"> @type screen_number: int</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_protocol: the name of the X11 authentication method used;</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"><tt class="py-docstring"> if none is given, C{"MIT-MAGIC-COOKIE-1"} is used</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_protocol: str</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_cookie: hexadecimal string containing the x11 auth cookie;</tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"><tt class="py-docstring"> if none is given, a secure random 128-bit value is generated</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_cookie: str</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"><tt class="py-docstring"> @param single_connection: if True, only a single x11 connection will be</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"><tt class="py-docstring"> forwarded (by default, any number of x11 connections can arrive</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"><tt class="py-docstring"> over this session)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"><tt class="py-docstring"> @type single_connection: bool</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: an optional handler to use for incoming X11 connections</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: function</tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"><tt class="py-docstring"> @return: the auth_cookie used</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-88" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-88', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel is not open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">auth_protocol</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> <tt class="py-name">auth_protocol</tt> <tt class="py-op">=</tt> <tt class="py-string">'MIT-MAGIC-COOKIE-1'</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">auth_cookie</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-name">auth_cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">binascii</tt><tt class="py-op">.</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-89', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -588,11 +572,11 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-95', 'randpool', 'link-95');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-96', 'get_bytes', 'link-96');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> </tt>
-<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-97', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-98', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-90', 'randpool', 'link-90');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-91', 'get_bytes', 'link-91');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-92', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-93', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -612,188 +596,185 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-99', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-100', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-101', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'x11-req'</tt><tt class="py-op">)</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-102', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-103', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">single_connection</tt><tt class="py-op">)</tt> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-104', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_protocol</tt><tt class="py-op">)</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-105', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_cookie</tt><tt class="py-op">)</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-106', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">screen_number</tt><tt class="py-op">)</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="paramiko.HostKeys.clear
-paramiko.pipe.OrPipe.clear
-paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-107', 'clear', 'link-41');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-108', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-109', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_x11_handler</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">auth_cookie</tt> </tt>
-</div><a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> </tt>
-<a name="Channel.get_transport"></a><div id="Channel.get_transport-def"><a name="L385"></a><tt class="py-lineno"> 385</tt> <a class="py-toggle" href="#" id="Channel.get_transport-toggle" onclick="return toggle('Channel.get_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_transport">get_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.get_transport-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_transport-expanded"><a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"><tt class="py-docstring"> Return the L{Transport} associated with this channel.</tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> @return: the L{Transport} that was used to create this channel.</tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Transport}</tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-110', 'transport', 'link-20');">transport</a></tt> </tt>
-</div><a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> </tt>
-<a name="Channel.set_name"></a><div id="Channel.set_name-def"><a name="L394"></a><tt class="py-lineno"> 394</tt> <a class="py-toggle" href="#" id="Channel.set_name-toggle" onclick="return toggle('Channel.set_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#set_name">set_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.set_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.set_name-expanded"><a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> Set a name for this channel. Currently it's only used to set the name</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> of the channel in logfile entries. The name can be fetched with the</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"><tt class="py-docstring"> L{get_name} method.</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> <tt class="py-op">=</tt> <tt id="link-111" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-111', 'name', 'link-111');">name</a></tt> </tt>
-</div><a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> </tt>
-<a name="Channel.get_name"></a><div id="Channel.get_name-def"><a name="L405"></a><tt class="py-lineno"> 405</tt> <a class="py-toggle" href="#" id="Channel.get_name-toggle" onclick="return toggle('Channel.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_name">get_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.get_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_name-expanded"><a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"> Get the name of this channel that was previously set by L{set_name}.</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"> @return: the name of this channel.</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> </tt>
-</div><a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"> </tt>
-<a name="Channel.get_id"></a><div id="Channel.get_id-def"><a name="L414"></a><tt class="py-lineno"> 414</tt> <a class="py-toggle" href="#" id="Channel.get_id-toggle" onclick="return toggle('Channel.get_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_id">get_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.get_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_id-expanded"><a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> Return the ID # for this channel. The channel ID is unique across</tt> </tt>
-<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"><tt class="py-docstring"> a L{Transport} and usually a small number. It's also the number</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"><tt class="py-docstring"> passed to L{ServerInterface.check_channel_request} when determining</tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"><tt class="py-docstring"> whether to accept a channel request in server mode.</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"><tt class="py-docstring"> @return: the ID of this channel.</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt> </tt>
-</div><a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> </tt>
-<a name="Channel.set_combine_stderr"></a><div id="Channel.set_combine_stderr-def"><a name="L426"></a><tt class="py-lineno"> 426</tt> <a class="py-toggle" href="#" id="Channel.set_combine_stderr-toggle" onclick="return toggle('Channel.set_combine_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#set_combine_stderr">set_combine_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">combine</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.set_combine_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.set_combine_stderr-expanded"><a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"><tt class="py-docstring"> Set whether stderr should be combined into stdout on this channel.</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"><tt class="py-docstring"> The default is C{False}, but in some cases it may be convenient to</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"><tt class="py-docstring"> have both streams combined.</tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"><tt class="py-docstring"> If this is C{False}, and L{exec_command} is called (or C{invoke_shell}</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"><tt class="py-docstring"> with no pty), output to stderr will not show up through the L{recv}</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"><tt class="py-docstring"> and L{recv_ready} calls. You will have to use L{recv_stderr} and</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"><tt class="py-docstring"> L{recv_stderr_ready} to get stderr output.</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"><tt class="py-docstring"> If this is C{True}, data will never show up via L{recv_stderr} or</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"><tt class="py-docstring"> L{recv_stderr_ready}.</tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"><tt class="py-docstring"> @param combine: C{True} if stderr output should be combined into</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt class="py-docstring"> stdout on this channel.</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt class="py-docstring"> @type combine: bool</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"><tt class="py-docstring"> @return: previous setting.</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">combine</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">combine</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-comment"># copy old stderr buffer into primary buffer</tt> </tt>
-<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.empty()=paramiko.buffered_pipe.BufferedPipe-class.html#empty"><a title="paramiko.buffered_pipe.BufferedPipe.empty" class="py-name" href="#" onclick="return doclink('link-112', 'empty', 'link-112');">empty</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_feed</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">old</tt> </tt>
-</div><a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> <tt class="py-comment">### socket API</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"> </tt>
-<a name="Channel.settimeout"></a><div id="Channel.settimeout-def"><a name="L466"></a><tt class="py-lineno"> 466</tt> <a class="py-toggle" href="#" id="Channel.settimeout-toggle" onclick="return toggle('Channel.settimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#settimeout">settimeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.settimeout-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.settimeout-expanded"><a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt class="py-docstring"> Set a timeout on blocking read/write operations. The C{timeout}</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt class="py-docstring"> argument can be a nonnegative float expressing seconds, or C{None}. If</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"><tt class="py-docstring"> a float is given, subsequent channel read/write operations will raise</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"><tt class="py-docstring"> a timeout exception if the timeout period value has elapsed before the</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"><tt class="py-docstring"> operation has completed. Setting a timeout of C{None} disables</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"><tt class="py-docstring"> timeouts on socket operations.</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.settimeout(0.0)} is equivalent to C{chan.setblocking(0)};</tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.settimeout(None)} is equivalent to C{chan.setblocking(1)}.</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: seconds to wait for a pending read/write operation</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"><tt class="py-docstring"> before raising C{socket.timeout}, or C{None} for no timeout.</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">timeout</tt> </tt>
-</div><a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"> </tt>
-<a name="Channel.gettimeout"></a><div id="Channel.gettimeout-def"><a name="L484"></a><tt class="py-lineno"> 484</tt> <a class="py-toggle" href="#" id="Channel.gettimeout-toggle" onclick="return toggle('Channel.gettimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#gettimeout">gettimeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.gettimeout-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.gettimeout-expanded"><a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-docstring"> Returns the timeout in seconds (as a float) associated with socket</tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-docstring"> operations, or C{None} if no timeout is set. This reflects the last</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-docstring"> call to L{setblocking} or L{settimeout}.</tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> @return: timeout in seconds, or C{None}.</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: float</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> </tt>
-</div><a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> </tt>
-<a name="Channel.setblocking"></a><div id="Channel.setblocking-def"><a name="L495"></a><tt class="py-lineno"> 495</tt> <a class="py-toggle" href="#" id="Channel.setblocking-toggle" onclick="return toggle('Channel.setblocking');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#setblocking">setblocking</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">blocking</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.setblocking-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.setblocking-expanded"><a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"><tt class="py-docstring"> Set blocking or non-blocking mode of the channel: if C{blocking} is 0,</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"><tt class="py-docstring"> the channel is set to non-blocking mode; otherwise it's set to blocking</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"><tt class="py-docstring"> mode. Initially all channels are in blocking mode.</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"><tt class="py-docstring"> In non-blocking mode, if a L{recv} call doesn't find any data, or if a</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"><tt class="py-docstring"> L{send} call can't immediately dispose of the data, an error exception</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"><tt class="py-docstring"> is raised. In blocking mode, the calls block until they can proceed. An</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"><tt class="py-docstring"> EOF condition is considered "immediate data" for L{recv}, so if the</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"><tt class="py-docstring"> channel is closed in the read direction, it will never block.</tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.setblocking(0)} is equivalent to C{chan.settimeout(0)};</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.setblocking(1)} is equivalent to C{chan.settimeout(None)}.</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"><tt class="py-docstring"> @param blocking: 0 to set non-blocking mode; non-0 to set blocking</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"><tt class="py-docstring"> mode.</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"><tt class="py-docstring"> @type blocking: int</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">blocking</tt><tt class="py-op">:</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
-paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-113', 'settimeout', 'link-113');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="paramiko.Channel.settimeout
-paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-114', 'settimeout', 'link-113');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-number">0.0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> </tt>
-<a name="Channel.getpeername"></a><div id="Channel.getpeername-def"><a name="L519"></a><tt class="py-lineno"> 519</tt> <a class="py-toggle" href="#" id="Channel.getpeername-toggle" onclick="return toggle('Channel.getpeername');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#getpeername">getpeername</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.getpeername-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.getpeername-expanded"><a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"><tt class="py-docstring"> Return the address of the remote side of this Channel, if possible.</tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"><tt class="py-docstring"> This is just a wrapper around C{'getpeername'} on the Transport, used</tt> </tt>
-<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"><tt class="py-docstring"> to provide enough of a socket-like interface to allow asyncore to work.</tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"><tt class="py-docstring"> (asyncore likes to call C{'getpeername'}.)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"><tt class="py-docstring"> @return: the address if the remote host, if known</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(str, int)</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-115', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Method paramiko.Channel.getpeername()=paramiko.Channel-class.html#getpeername,Method paramiko.Transport.getpeername()=paramiko.Transport-class.html#getpeername"><a title="paramiko.Channel.getpeername
-paramiko.Transport.getpeername" class="py-name" href="#" onclick="return doclink('link-116', 'getpeername', 'link-116');">getpeername</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"> </tt>
-<a name="Channel.close"></a><div id="Channel.close-def"><a name="L531"></a><tt class="py-lineno"> 531</tt> <a class="py-toggle" href="#" id="Channel.close-toggle" onclick="return toggle('Channel.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.close-expanded"><a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"><tt class="py-docstring"> Close the channel. All future read/write operations on the channel</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"><tt class="py-docstring"> will fail. The remote end will receive no more data (after queued data</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"><tt class="py-docstring"> is flushed). Channels are automatically closed when their L{Transport}</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"><tt class="py-docstring"> is closed or when they are garbage collected.</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-comment"># only close the pipe when the user explicitly closes the channel.</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># otherwise they will get unpleasant surprises. (and do it before</tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># checking self.closed, since the remote host may have already</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># closed the connection.)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="paramiko.Agent.close
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-94', 'MSG_CHANNEL_REQUEST', 'link-31');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-95', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-96', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'x11-req'</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-97', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-98', 'add_boolean', 'link-34');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">single_connection</tt><tt class="py-op">)</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-99', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_protocol</tt><tt class="py-op">)</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-100', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_cookie</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-101', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">screen_number</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event_pending</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-102', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-103', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_x11_handler</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">auth_cookie</tt> </tt>
+</div><a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> </tt>
+<a name="Channel.get_transport"></a><div id="Channel.get_transport-def"><a name="L384"></a><tt class="py-lineno"> 384</tt> <a class="py-toggle" href="#" id="Channel.get_transport-toggle" onclick="return toggle('Channel.get_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_transport">get_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.get_transport-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_transport-expanded"><a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"><tt class="py-docstring"> Return the L{Transport} associated with this channel.</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"><tt class="py-docstring"> @return: the L{Transport} that was used to create this channel.</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Transport}</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-104', 'transport', 'link-20');">transport</a></tt> </tt>
+</div><a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> </tt>
+<a name="Channel.set_name"></a><div id="Channel.set_name-def"><a name="L393"></a><tt class="py-lineno"> 393</tt> <a class="py-toggle" href="#" id="Channel.set_name-toggle" onclick="return toggle('Channel.set_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#set_name">set_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.set_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.set_name-expanded"><a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"><tt class="py-docstring"> Set a name for this channel. Currently it's only used to set the name</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> of the channel in logfile entries. The name can be fetched with the</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> L{get_name} method.</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-105', 'name', 'link-105');">name</a></tt> </tt>
+</div><a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"> </tt>
+<a name="Channel.get_name"></a><div id="Channel.get_name-def"><a name="L404"></a><tt class="py-lineno"> 404</tt> <a class="py-toggle" href="#" id="Channel.get_name-toggle" onclick="return toggle('Channel.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_name">get_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.get_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_name-expanded"><a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> Get the name of this channel that was previously set by L{set_name}.</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"> @return: the name of this channel.</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> </tt>
+</div><a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> </tt>
+<a name="Channel.get_id"></a><div id="Channel.get_id-def"><a name="L413"></a><tt class="py-lineno"> 413</tt> <a class="py-toggle" href="#" id="Channel.get_id-toggle" onclick="return toggle('Channel.get_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#get_id">get_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.get_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.get_id-expanded"><a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt class="py-docstring"> Return the ID # for this channel. The channel ID is unique across</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> a L{Transport} and usually a small number. It's also the number</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"><tt class="py-docstring"> passed to L{ServerInterface.check_channel_request} when determining</tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"><tt class="py-docstring"> whether to accept a channel request in server mode.</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"><tt class="py-docstring"> @return: the ID of this channel.</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt> </tt>
+</div><a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> </tt>
+<a name="Channel.set_combine_stderr"></a><div id="Channel.set_combine_stderr-def"><a name="L425"></a><tt class="py-lineno"> 425</tt> <a class="py-toggle" href="#" id="Channel.set_combine_stderr-toggle" onclick="return toggle('Channel.set_combine_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#set_combine_stderr">set_combine_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">combine</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.set_combine_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.set_combine_stderr-expanded"><a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"><tt class="py-docstring"> Set whether stderr should be combined into stdout on this channel.</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"><tt class="py-docstring"> The default is C{False}, but in some cases it may be convenient to</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"><tt class="py-docstring"> have both streams combined.</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"><tt class="py-docstring"> If this is C{False}, and L{exec_command} is called (or C{invoke_shell}</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"><tt class="py-docstring"> with no pty), output to stderr will not show up through the L{recv}</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"><tt class="py-docstring"> and L{recv_ready} calls. You will have to use L{recv_stderr} and</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"><tt class="py-docstring"> L{recv_stderr_ready} to get stderr output.</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"><tt class="py-docstring"> If this is C{True}, data will never show up via L{recv_stderr} or</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"><tt class="py-docstring"> L{recv_stderr_ready}.</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"><tt class="py-docstring"> @param combine: C{True} if stderr output should be combined into</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"><tt class="py-docstring"> stdout on this channel.</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt class="py-docstring"> @type combine: bool</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt class="py-docstring"> @return: previous setting.</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-name">old</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">combine</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">combine</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">old</tt><tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-comment"># copy old stderr buffer into primary buffer</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.empty()=paramiko.buffered_pipe.BufferedPipe-class.html#empty"><a title="paramiko.buffered_pipe.BufferedPipe.empty" class="py-name" href="#" onclick="return doclink('link-106', 'empty', 'link-106');">empty</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_feed</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">old</tt> </tt>
+</div><a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> <tt class="py-comment">### socket API</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> </tt>
+<a name="Channel.settimeout"></a><div id="Channel.settimeout-def"><a name="L465"></a><tt class="py-lineno"> 465</tt> <a class="py-toggle" href="#" id="Channel.settimeout-toggle" onclick="return toggle('Channel.settimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#settimeout">settimeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.settimeout-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.settimeout-expanded"><a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"><tt class="py-docstring"> Set a timeout on blocking read/write operations. The C{timeout}</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt class="py-docstring"> argument can be a nonnegative float expressing seconds, or C{None}. If</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt class="py-docstring"> a float is given, subsequent channel read/write operations will raise</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"><tt class="py-docstring"> a timeout exception if the timeout period value has elapsed before the</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"><tt class="py-docstring"> operation has completed. Setting a timeout of C{None} disables</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"><tt class="py-docstring"> timeouts on socket operations.</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.settimeout(0.0)} is equivalent to C{chan.setblocking(0)};</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.settimeout(None)} is equivalent to C{chan.setblocking(1)}.</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: seconds to wait for a pending read/write operation</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt class="py-docstring"> before raising C{socket.timeout}, or C{None} for no timeout.</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">timeout</tt> </tt>
+</div><a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> </tt>
+<a name="Channel.gettimeout"></a><div id="Channel.gettimeout-def"><a name="L483"></a><tt class="py-lineno"> 483</tt> <a class="py-toggle" href="#" id="Channel.gettimeout-toggle" onclick="return toggle('Channel.gettimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#gettimeout">gettimeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.gettimeout-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.gettimeout-expanded"><a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"><tt class="py-docstring"> Returns the timeout in seconds (as a float) associated with socket</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-docstring"> operations, or C{None} if no timeout is set. This reflects the last</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-docstring"> call to L{setblocking} or L{settimeout}.</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"> @return: timeout in seconds, or C{None}.</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: float</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> </tt>
+</div><a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> </tt>
+<a name="Channel.setblocking"></a><div id="Channel.setblocking-def"><a name="L494"></a><tt class="py-lineno"> 494</tt> <a class="py-toggle" href="#" id="Channel.setblocking-toggle" onclick="return toggle('Channel.setblocking');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#setblocking">setblocking</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">blocking</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.setblocking-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.setblocking-expanded"><a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"><tt class="py-docstring"> Set blocking or non-blocking mode of the channel: if C{blocking} is 0,</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"><tt class="py-docstring"> the channel is set to non-blocking mode; otherwise it's set to blocking</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"><tt class="py-docstring"> mode. Initially all channels are in blocking mode.</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"><tt class="py-docstring"> In non-blocking mode, if a L{recv} call doesn't find any data, or if a</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"><tt class="py-docstring"> L{send} call can't immediately dispose of the data, an error exception</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"><tt class="py-docstring"> is raised. In blocking mode, the calls block until they can proceed. An</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"><tt class="py-docstring"> EOF condition is considered "immediate data" for L{recv}, so if the</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"><tt class="py-docstring"> channel is closed in the read direction, it will never block.</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.setblocking(0)} is equivalent to C{chan.settimeout(0)};</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"><tt class="py-docstring"> C{chan.setblocking(1)} is equivalent to C{chan.settimeout(None)}.</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"><tt class="py-docstring"> @param blocking: 0 to set non-blocking mode; non-0 to set blocking</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"><tt class="py-docstring"> mode.</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"><tt class="py-docstring"> @type blocking: int</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">blocking</tt><tt class="py-op">:</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
+paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-107', 'settimeout', 'link-107');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.Channel.settimeout
+paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-108', 'settimeout', 'link-107');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-number">0.0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> </tt>
+<a name="Channel.getpeername"></a><div id="Channel.getpeername-def"><a name="L518"></a><tt class="py-lineno"> 518</tt> <a class="py-toggle" href="#" id="Channel.getpeername-toggle" onclick="return toggle('Channel.getpeername');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#getpeername">getpeername</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.getpeername-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.getpeername-expanded"><a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"><tt class="py-docstring"> Return the address of the remote side of this Channel, if possible.</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"><tt class="py-docstring"> This is just a wrapper around C{'getpeername'} on the Transport, used</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"><tt class="py-docstring"> to provide enough of a socket-like interface to allow asyncore to work.</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"><tt class="py-docstring"> (asyncore likes to call C{'getpeername'}.)</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"><tt class="py-docstring"> @return: the address if the remote host, if known</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(str, int)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-109', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method paramiko.Channel.getpeername()=paramiko.Channel-class.html#getpeername,Method paramiko.Transport.getpeername()=paramiko.Transport-class.html#getpeername"><a title="paramiko.Channel.getpeername
+paramiko.Transport.getpeername" class="py-name" href="#" onclick="return doclink('link-110', 'getpeername', 'link-110');">getpeername</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> </tt>
+<a name="Channel.close"></a><div id="Channel.close-def"><a name="L530"></a><tt class="py-lineno"> 530</tt> <a class="py-toggle" href="#" id="Channel.close-toggle" onclick="return toggle('Channel.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.close-expanded"><a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"><tt class="py-docstring"> Close the channel. All future read/write operations on the channel</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"><tt class="py-docstring"> will fail. The remote end will receive no more data (after queued data</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"><tt class="py-docstring"> is flushed). Channels are automatically closed when their L{Transport}</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"><tt class="py-docstring"> is closed or when they are garbage collected.</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-comment"># only close the pipe when the user explicitly closes the channel.</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-comment"># otherwise they will get unpleasant surprises. (and do it before</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-comment"># checking self.closed, since the remote host may have already</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-comment"># closed the connection.)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -804,57 +785,57 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-117', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> <tt class="py-name">msgs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_internal</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msgs</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-118', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"> </tt>
-<a name="Channel.recv_ready"></a><div id="Channel.recv_ready-def"><a name="L557"></a><tt class="py-lineno"> 557</tt> <a class="py-toggle" href="#" id="Channel.recv_ready-toggle" onclick="return toggle('Channel.recv_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_ready">recv_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.recv_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_ready-expanded"><a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data is buffered and ready to be read from this</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-docstring"> channel. A C{False} result does not mean that the channel has closed;</tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"><tt class="py-docstring"> it means you may need to wait before more data arrives.</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{recv} call on this channel would immediately</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"> return at least one byte; C{False} otherwise.</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.read_ready()=paramiko.buffered_pipe.BufferedPipe-class.html#read_ready"><a title="paramiko.buffered_pipe.BufferedPipe.read_ready" class="py-name" href="#" onclick="return doclink('link-119', 'read_ready', 'link-119');">read_ready</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> </tt>
-<a name="Channel.recv"></a><div id="Channel.recv-def"><a name="L569"></a><tt class="py-lineno"> 569</tt> <a class="py-toggle" href="#" id="Channel.recv-toggle" onclick="return toggle('Channel.recv');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv">recv</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.recv-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv-expanded"><a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"><tt class="py-docstring"> Receive data from the channel. The return value is a string</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"> representing the data received. The maximum amount of data to be</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> received at once is specified by C{nbytes}. If a string of length zero</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> is returned, the channel stream has closed.</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: maximum number of bytes to read.</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"> @return: data.</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data is ready before the timeout set by</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-docstring"> L{settimeout}.</tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-111', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-name">msgs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_internal</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msgs</tt><tt class="py-op">:</tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-112', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> </tt>
+<a name="Channel.recv_ready"></a><div id="Channel.recv_ready-def"><a name="L556"></a><tt class="py-lineno"> 556</tt> <a class="py-toggle" href="#" id="Channel.recv_ready-toggle" onclick="return toggle('Channel.recv_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_ready">recv_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.recv_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_ready-expanded"><a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data is buffered and ready to be read from this</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"><tt class="py-docstring"> channel. A C{False} result does not mean that the channel has closed;</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-docstring"> it means you may need to wait before more data arrives.</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{recv} call on this channel would immediately</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"><tt class="py-docstring"> return at least one byte; C{False} otherwise.</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.read_ready()=paramiko.buffered_pipe.BufferedPipe-class.html#read_ready"><a title="paramiko.buffered_pipe.BufferedPipe.read_ready" class="py-name" href="#" onclick="return doclink('link-113', 'read_ready', 'link-113');">read_ready</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> </tt>
+<a name="Channel.recv"></a><div id="Channel.recv-def"><a name="L568"></a><tt class="py-lineno"> 568</tt> <a class="py-toggle" href="#" id="Channel.recv-toggle" onclick="return toggle('Channel.recv');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv">recv</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.recv-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv-expanded"><a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"><tt class="py-docstring"> Receive data from the channel. The return value is a string</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"><tt class="py-docstring"> representing the data received. The maximum amount of data to be</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"> received at once is specified by C{nbytes}. If a string of length zero</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> is returned, the channel stream has closed.</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: maximum number of bytes to read.</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> @return: data.</tt> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data is ready before the timeout set by</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-docstring"> L{settimeout}.</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-120', 'read', 'link-120');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-121" class="py-name"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-121', 'PipeTimeout', 'link-16');">PipeTimeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_add_window</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-comment"># no need to hold the channel lock when sending this</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-122" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-122', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-123', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-124" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST=paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST=paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.common.MSG_CHANNEL_WINDOW_ADJUST=paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.dsskey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST=paramiko.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST=paramiko.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.pkey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST=paramiko.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.util.MSG_CHANNEL_WINDOW_ADJUST=paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-114', 'read', 'link-114');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-115" class="py-name"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-115', 'PipeTimeout', 'link-16');">PipeTimeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_add_window</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-comment"># no need to hold the channel lock when sending this</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-116', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-117', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST=paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST=paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.common.MSG_CHANNEL_WINDOW_ADJUST=paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.dsskey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST=paramiko.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST=paramiko.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.pkey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST=paramiko.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.util.MSG_CHANNEL_WINDOW_ADJUST=paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST
paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
@@ -874,59 +855,59 @@ paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST
paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST
-paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-124', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-124');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-125', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-126', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-127', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> </tt>
-<a name="Channel.recv_stderr_ready"></a><div id="Channel.recv_stderr_ready-def"><a name="L600"></a><tt class="py-lineno"> 600</tt> <a class="py-toggle" href="#" id="Channel.recv_stderr_ready-toggle" onclick="return toggle('Channel.recv_stderr_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_stderr_ready">recv_stderr_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.recv_stderr_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_stderr_ready-expanded"><a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data is buffered and ready to be read from this</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"><tt class="py-docstring"> channel's stderr stream. Only channels using L{exec_command} or</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"><tt class="py-docstring"> L{invoke_shell} without a pty will ever have data on the stderr</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> stream.</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{recv_stderr} call on this channel would</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"><tt class="py-docstring"> immediately return at least one byte; C{False} otherwise.</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.read_ready" class="py-name" href="#" onclick="return doclink('link-128', 'read_ready', 'link-119');">read_ready</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> </tt>
-<a name="Channel.recv_stderr"></a><div id="Channel.recv_stderr-def"><a name="L615"></a><tt class="py-lineno"> 615</tt> <a class="py-toggle" href="#" id="Channel.recv_stderr-toggle" onclick="return toggle('Channel.recv_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_stderr">recv_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.recv_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_stderr-expanded"><a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"> Receive data from the channel's stderr stream. Only channels using</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> L{exec_command} or L{invoke_shell} without a pty will ever have data</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"> on the stderr stream. The return value is a string representing the</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> data received. The maximum amount of data to be received at once is</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"> specified by C{nbytes}. If a string of length zero is returned, the</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"><tt class="py-docstring"> channel stream has closed.</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: maximum number of bytes to read.</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"><tt class="py-docstring"> @return: data.</tt> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data is ready before the timeout set by</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"><tt class="py-docstring"> L{settimeout}.</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-118', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-118');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-119', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-120', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-121', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> </tt>
+<a name="Channel.recv_stderr_ready"></a><div id="Channel.recv_stderr_ready-def"><a name="L599"></a><tt class="py-lineno"> 599</tt> <a class="py-toggle" href="#" id="Channel.recv_stderr_ready-toggle" onclick="return toggle('Channel.recv_stderr_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_stderr_ready">recv_stderr_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.recv_stderr_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_stderr_ready-expanded"><a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data is buffered and ready to be read from this</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"><tt class="py-docstring"> channel's stderr stream. Only channels using L{exec_command} or</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"><tt class="py-docstring"> L{invoke_shell} without a pty will ever have data on the stderr</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"><tt class="py-docstring"> stream.</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{recv_stderr} call on this channel would</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"><tt class="py-docstring"> immediately return at least one byte; C{False} otherwise.</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.read_ready" class="py-name" href="#" onclick="return doclink('link-122', 'read_ready', 'link-113');">read_ready</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> </tt>
+<a name="Channel.recv_stderr"></a><div id="Channel.recv_stderr-def"><a name="L614"></a><tt class="py-lineno"> 614</tt> <a class="py-toggle" href="#" id="Channel.recv_stderr-toggle" onclick="return toggle('Channel.recv_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#recv_stderr">recv_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.recv_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.recv_stderr-expanded"><a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"><tt class="py-docstring"> Receive data from the channel's stderr stream. Only channels using</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"> L{exec_command} or L{invoke_shell} without a pty will ever have data</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> on the stderr stream. The return value is a string representing the</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"> data received. The maximum amount of data to be received at once is</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> specified by C{nbytes}. If a string of length zero is returned, the</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"> channel stream has closed.</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: maximum number of bytes to read.</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"><tt class="py-docstring"> @return: data.</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data is ready before the timeout set by</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"><tt class="py-docstring"> L{settimeout}.</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-129', 'read', 'link-120');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-130" class="py-name"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-130', 'PipeTimeout', 'link-16');">PipeTimeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_add_window</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-comment"># no need to hold the channel lock when sending this</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-131', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-132', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-133" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-123', 'read', 'link-114');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-124" class="py-name"><a title="paramiko.buffered_pipe.PipeTimeout" class="py-name" href="#" onclick="return doclink('link-124', 'PipeTimeout', 'link-16');">PipeTimeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_add_window</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"> <tt class="py-comment"># no need to hold the channel lock when sending this</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-125', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-126', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-127" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST
paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
@@ -946,59 +927,59 @@ paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST
paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST
-paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-133', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-124');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-134', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-135', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-136', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> </tt>
-<a name="Channel.send_ready"></a><div id="Channel.send_ready-def"><a name="L650"></a><tt class="py-lineno"> 650</tt> <a class="py-toggle" href="#" id="Channel.send_ready-toggle" onclick="return toggle('Channel.send_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_ready">send_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.send_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_ready-expanded"><a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data can be written to this channel without blocking.</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"><tt class="py-docstring"> This means the channel is either closed (so any write attempt would</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"><tt class="py-docstring"> return immediately) or there is at least one byte of space in the </tt> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"><tt class="py-docstring"> outbound buffer. If there is at least one byte of space in the</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"><tt class="py-docstring"> outbound buffer, a L{send} call will succeed immediately and return</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"><tt class="py-docstring"> the number of bytes actually written.</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{send} call on this channel would immediately</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> succeed or fail</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> </tt>
-<a name="Channel.send"></a><div id="Channel.send-def"><a name="L671"></a><tt class="py-lineno"> 671</tt> <a class="py-toggle" href="#" id="Channel.send-toggle" onclick="return toggle('Channel.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.send-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send-expanded"><a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel. Returns the number of bytes sent, or 0 if</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> the channel stream is closed. Applications are responsible for</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> checking that all data has been sent: if only some of the data was</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"> transmitted, the application needs to attempt delivery of the remaining</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"><tt class="py-docstring"> data.</tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"> @return: number of bytes actually sent</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data could be sent before the timeout set</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> by L{settimeout}.</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_send_window</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-comment"># eof or similar</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-137', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-138', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-139" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_DATA,Variable paramiko.channel.MSG_CHANNEL_DATA=paramiko.channel-module.html#MSG_CHANNEL_DATA,Variable paramiko.client.MSG_CHANNEL_DATA=paramiko.client-module.html#MSG_CHANNEL_DATA,Variable paramiko.common.MSG_CHANNEL_DATA=paramiko.common-module.html#MSG_CHANNEL_DATA,Variable paramiko.dsskey.MSG_CHANNEL_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_DATA,Variable paramiko.packet.MSG_CHANNEL_DATA=paramiko.packet-module.html#MSG_CHANNEL_DATA,Variable paramiko.pkey.MSG_CHANNEL_DATA=paramiko.pkey-module.html#MSG_CHANNEL_DATA,Variable paramiko.rsakey.MSG_CHANNEL_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_DATA,Variable paramiko.server.MSG_CHANNEL_DATA=paramiko.server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp.MSG_CHANNEL_DATA=paramiko.sftp-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_DATA,Variable paramiko.transport.MSG_CHANNEL_DATA=paramiko.transport-module.html#MSG_CHANNEL_DATA,Variable paramiko.util.MSG_CHANNEL_DATA=paramiko.util-module.html#MSG_CHANNEL_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_DATA
+paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-127', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-118');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-128', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-129', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-130', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> </tt>
+<a name="Channel.send_ready"></a><div id="Channel.send_ready-def"><a name="L649"></a><tt class="py-lineno"> 649</tt> <a class="py-toggle" href="#" id="Channel.send_ready-toggle" onclick="return toggle('Channel.send_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_ready">send_ready</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.send_ready-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_ready-expanded"><a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"><tt class="py-docstring"> Returns true if data can be written to this channel without blocking.</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"><tt class="py-docstring"> This means the channel is either closed (so any write attempt would</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"><tt class="py-docstring"> return immediately) or there is at least one byte of space in the </tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"><tt class="py-docstring"> outbound buffer. If there is at least one byte of space in the</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"><tt class="py-docstring"> outbound buffer, a L{send} call will succeed immediately and return</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"><tt class="py-docstring"> the number of bytes actually written.</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if a L{send} call on this channel would immediately</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> succeed or fail</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> </tt>
+<a name="Channel.send"></a><div id="Channel.send-def"><a name="L670"></a><tt class="py-lineno"> 670</tt> <a class="py-toggle" href="#" id="Channel.send-toggle" onclick="return toggle('Channel.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.send-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send-expanded"><a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel. Returns the number of bytes sent, or 0 if</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> the channel stream is closed. Applications are responsible for</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> checking that all data has been sent: if only some of the data was</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> transmitted, the application needs to attempt delivery of the remaining</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"> data.</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> @return: number of bytes actually sent</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data could be sent before the timeout set</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> by L{settimeout}.</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_send_window</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-comment"># eof or similar</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-131', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-132', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-133" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_DATA,Variable paramiko.channel.MSG_CHANNEL_DATA=paramiko.channel-module.html#MSG_CHANNEL_DATA,Variable paramiko.client.MSG_CHANNEL_DATA=paramiko.client-module.html#MSG_CHANNEL_DATA,Variable paramiko.common.MSG_CHANNEL_DATA=paramiko.common-module.html#MSG_CHANNEL_DATA,Variable paramiko.dsskey.MSG_CHANNEL_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_DATA,Variable paramiko.packet.MSG_CHANNEL_DATA=paramiko.packet-module.html#MSG_CHANNEL_DATA,Variable paramiko.pkey.MSG_CHANNEL_DATA=paramiko.pkey-module.html#MSG_CHANNEL_DATA,Variable paramiko.rsakey.MSG_CHANNEL_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_DATA,Variable paramiko.server.MSG_CHANNEL_DATA=paramiko.server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp.MSG_CHANNEL_DATA=paramiko.sftp-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_DATA,Variable paramiko.transport.MSG_CHANNEL_DATA=paramiko.transport-module.html#MSG_CHANNEL_DATA,Variable paramiko.util.MSG_CHANNEL_DATA=paramiko.util-module.html#MSG_CHANNEL_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_DATA
paramiko.channel.MSG_CHANNEL_DATA
paramiko.client.MSG_CHANNEL_DATA
paramiko.common.MSG_CHANNEL_DATA
@@ -1018,44 +999,44 @@ paramiko.sftp_handle.MSG_CHANNEL_DATA
paramiko.sftp_server.MSG_CHANNEL_DATA
paramiko.sftp_si.MSG_CHANNEL_DATA
paramiko.transport.MSG_CHANNEL_DATA
-paramiko.util.MSG_CHANNEL_DATA" class="py-name" href="#" onclick="return doclink('link-139', 'MSG_CHANNEL_DATA', 'link-139');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-140', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-141', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> <tt class="py-comment"># Note: We release self.lock before calling _send_user_message.</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Otherwise, we can deadlock during re-keying.</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-142', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
-</div><a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> </tt>
-<a name="Channel.send_stderr"></a><div id="Channel.send_stderr-def"><a name="L705"></a><tt class="py-lineno"> 705</tt> <a class="py-toggle" href="#" id="Channel.send_stderr-toggle" onclick="return toggle('Channel.send_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_stderr">send_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.send_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_stderr-expanded"><a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel on the "stderr" stream. This is normally</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"><tt class="py-docstring"> only used by servers to send output from shell commands -- clients</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"><tt class="py-docstring"> won't use this. Returns the number of bytes sent, or 0 if the channel</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"><tt class="py-docstring"> stream is closed. Applications are responsible for checking that all</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"><tt class="py-docstring"> data has been sent: if only some of the data was transmitted, the</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"><tt class="py-docstring"> application needs to attempt delivery of the remaining data.</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send.</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"><tt class="py-docstring"> @return: number of bytes actually sent.</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data could be sent before the timeout set</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"><tt class="py-docstring"> by L{settimeout}.</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_send_window</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-comment"># eof or similar</tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-143" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-143', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-144', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-145" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.channel.MSG_CHANNEL_EXTENDED_DATA=paramiko.channel-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.client.MSG_CHANNEL_EXTENDED_DATA=paramiko.client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.common.MSG_CHANNEL_EXTENDED_DATA=paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.packet.MSG_CHANNEL_EXTENDED_DATA=paramiko.packet-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA=paramiko.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.server.MSG_CHANNEL_EXTENDED_DATA=paramiko.server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.transport.MSG_CHANNEL_EXTENDED_DATA=paramiko.transport-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.util.MSG_CHANNEL_EXTENDED_DATA=paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA
+paramiko.util.MSG_CHANNEL_DATA" class="py-name" href="#" onclick="return doclink('link-133', 'MSG_CHANNEL_DATA', 'link-133');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-134', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-135', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-comment"># Note: We release self.lock before calling _send_user_message.</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> <tt class="py-comment"># Otherwise, we can deadlock during re-keying.</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-136', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
+</div><a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> </tt>
+<a name="Channel.send_stderr"></a><div id="Channel.send_stderr-def"><a name="L704"></a><tt class="py-lineno"> 704</tt> <a class="py-toggle" href="#" id="Channel.send_stderr-toggle" onclick="return toggle('Channel.send_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#send_stderr">send_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.send_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.send_stderr-expanded"><a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel on the "stderr" stream. This is normally</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"><tt class="py-docstring"> only used by servers to send output from shell commands -- clients</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"><tt class="py-docstring"> won't use this. Returns the number of bytes sent, or 0 if the channel</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"><tt class="py-docstring"> stream is closed. Applications are responsible for checking that all</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"><tt class="py-docstring"> data has been sent: if only some of the data was transmitted, the</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"><tt class="py-docstring"> application needs to attempt delivery of the remaining data.</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send.</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"><tt class="py-docstring"> @return: number of bytes actually sent.</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if no data could be sent before the timeout set</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"><tt class="py-docstring"> by L{settimeout}.</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wait_for_send_window</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-comment"># eof or similar</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-137', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-138', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-139" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.channel.MSG_CHANNEL_EXTENDED_DATA=paramiko.channel-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.client.MSG_CHANNEL_EXTENDED_DATA=paramiko.client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.common.MSG_CHANNEL_EXTENDED_DATA=paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.packet.MSG_CHANNEL_EXTENDED_DATA=paramiko.packet-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA=paramiko.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.server.MSG_CHANNEL_EXTENDED_DATA=paramiko.server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.transport.MSG_CHANNEL_EXTENDED_DATA=paramiko.transport-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.util.MSG_CHANNEL_EXTENDED_DATA=paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA
paramiko.channel.MSG_CHANNEL_EXTENDED_DATA
paramiko.client.MSG_CHANNEL_EXTENDED_DATA
paramiko.common.MSG_CHANNEL_EXTENDED_DATA
@@ -1075,196 +1056,196 @@ paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA
paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA
paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA
paramiko.transport.MSG_CHANNEL_EXTENDED_DATA
-paramiko.util.MSG_CHANNEL_EXTENDED_DATA" class="py-name" href="#" onclick="return doclink('link-145', 'MSG_CHANNEL_EXTENDED_DATA', 'link-145');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-146', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-147', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-148', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-comment"># Note: We release self.lock before calling _send_user_message.</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Otherwise, we can deadlock during re-keying.</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-149', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
-</div><a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> </tt>
-<a name="Channel.sendall"></a><div id="Channel.sendall-def"><a name="L743"></a><tt class="py-lineno"> 743</tt> <a class="py-toggle" href="#" id="Channel.sendall-toggle" onclick="return toggle('Channel.sendall');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#sendall">sendall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.sendall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.sendall-expanded"><a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel, without allowing partial results. Unlike</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"><tt class="py-docstring"> L{send}, this method continues to send data from the given string until</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"> either all data has been sent or an error occurs. Nothing is returned.</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send.</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if sending stalled for longer than the timeout</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> set by L{settimeout}.</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if an error occured before the entire string was</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"> sent.</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"> @note: If the channel is closed while only part of the data hase been</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> sent, there is no way to determine how much data (if any) was sent.</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> This is irritating, but identically follows python's API.</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> <tt class="py-comment"># this doesn't seem useful, but it is the documented behavior of Socket</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-150', 'error', 'link-150');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">'Socket is closed'</tt><tt class="py-op">)</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"> <tt class="py-name">sent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method paramiko.Channel.send()=paramiko.Channel-class.html#send,Method paramiko.win_pageant.PageantConnection.send()=paramiko.win_pageant.PageantConnection-class.html#send"><a title="paramiko.Channel.send
-paramiko.win_pageant.PageantConnection.send" class="py-name" href="#" onclick="return doclink('link-151', 'send', 'link-151');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">sent</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> </tt>
-<a name="Channel.sendall_stderr"></a><div id="Channel.sendall_stderr-def"><a name="L769"></a><tt class="py-lineno"> 769</tt> <a class="py-toggle" href="#" id="Channel.sendall_stderr-toggle" onclick="return toggle('Channel.sendall_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#sendall_stderr">sendall_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.sendall_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.sendall_stderr-expanded"><a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel's "stderr" stream, without allowing partial</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"><tt class="py-docstring"> results. Unlike L{send_stderr}, this method continues to send data</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> from the given string until all data has been sent or an error occurs.</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> Nothing is returned.</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send to the client as "stderr" output.</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if sending stalled for longer than the timeout</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"><tt class="py-docstring"> set by L{settimeout}.</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if an error occured before the entire string was</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"><tt class="py-docstring"> sent.</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-152', 'error', 'link-150');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">'Socket is closed'</tt><tt class="py-op">)</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-name">sent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method paramiko.Channel.send_stderr()=paramiko.Channel-class.html#send_stderr"><a title="paramiko.Channel.send_stderr" class="py-name" href="#" onclick="return doclink('link-153', 'send_stderr', 'link-153');">send_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">sent</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> </tt>
-<a name="Channel.makefile"></a><div id="Channel.makefile-def"><a name="L793"></a><tt class="py-lineno"> 793</tt> <a class="py-toggle" href="#" id="Channel.makefile-toggle" onclick="return toggle('Channel.makefile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#makefile">makefile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.makefile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.makefile-expanded"><a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"><tt class="py-docstring"> Return a file-like object associated with this channel. The optional</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"><tt class="py-docstring"> C{mode} and C{bufsize} arguments are interpreted the same way as by</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"><tt class="py-docstring"> the built-in C{file()} function in python.</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-docstring"> @return: object which can be used for python file I/O.</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{ChannelFile}</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ChannelFile</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> </tt>
-<a name="Channel.makefile_stderr"></a><div id="Channel.makefile_stderr-def"><a name="L804"></a><tt class="py-lineno"> 804</tt> <a class="py-toggle" href="#" id="Channel.makefile_stderr-toggle" onclick="return toggle('Channel.makefile_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#makefile_stderr">makefile_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.makefile_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.makefile_stderr-expanded"><a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"> Return a file-like object associated with this channel's stderr</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> stream. Only channels using L{exec_command} or L{invoke_shell}</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> without a pty will ever have data on the stderr stream.</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> The optional C{mode} and C{bufsize} arguments are interpreted the</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> same way as by the built-in C{file()} function in python. For a</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"><tt class="py-docstring"> client, it only makes sense to open this file for reading. For a</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"> server, it only makes sense to open this file for writing.</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> @return: object which can be used for python file I/O.</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{ChannelFile}</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-154" class="py-name" targets="Class paramiko.channel.ChannelStderrFile=paramiko.channel.ChannelStderrFile-class.html"><a title="paramiko.channel.ChannelStderrFile" class="py-name" href="#" onclick="return doclink('link-154', 'ChannelStderrFile', 'link-154');">ChannelStderrFile</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> </tt>
-<a name="Channel.fileno"></a><div id="Channel.fileno-def"><a name="L822"></a><tt class="py-lineno"> 822</tt> <a class="py-toggle" href="#" id="Channel.fileno-toggle" onclick="return toggle('Channel.fileno');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#fileno">fileno</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.fileno-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.fileno-expanded"><a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> Returns an OS-level file descriptor which can be used for polling, but</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> but I{not} for reading or writing. This is primaily to allow python's</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> C{select} module to work.</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"> The first time C{fileno} is called on a channel, a pipe is created to</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> simulate real OS-level file descriptor (FD) behavior. Because of this,</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> two OS-level FDs are created, which will use up FDs faster than normal.</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> (You won't notice this effect unless you have hundreds of channels</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> open at the same time.)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> @return: an OS-level file descriptor</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> @warning: This method causes channel reads to be slightly less</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> efficient.</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
+paramiko.util.MSG_CHANNEL_EXTENDED_DATA" class="py-name" href="#" onclick="return doclink('link-139', 'MSG_CHANNEL_EXTENDED_DATA', 'link-139');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-140', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-141', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-142', 'add_string', 'link-33');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-comment"># Note: We release self.lock before calling _send_user_message.</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-comment"># Otherwise, we can deadlock during re-keying.</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-143', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
+</div><a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> </tt>
+<a name="Channel.sendall"></a><div id="Channel.sendall-def"><a name="L742"></a><tt class="py-lineno"> 742</tt> <a class="py-toggle" href="#" id="Channel.sendall-toggle" onclick="return toggle('Channel.sendall');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#sendall">sendall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.sendall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.sendall-expanded"><a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel, without allowing partial results. Unlike</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"><tt class="py-docstring"> L{send}, this method continues to send data from the given string until</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"><tt class="py-docstring"> either all data has been sent or an error occurs. Nothing is returned.</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send.</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if sending stalled for longer than the timeout</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> set by L{settimeout}.</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if an error occured before the entire string was</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> sent.</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> @note: If the channel is closed while only part of the data hase been</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"> sent, there is no way to determine how much data (if any) was sent.</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> This is irritating, but identically follows python's API.</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> <tt class="py-comment"># this doesn't seem useful, but it is the documented behavior of Socket</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-144', 'error', 'link-144');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">'Socket is closed'</tt><tt class="py-op">)</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> <tt class="py-name">sent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method paramiko.Channel.send()=paramiko.Channel-class.html#send,Method paramiko.win_pageant.PageantConnection.send()=paramiko.win_pageant.PageantConnection-class.html#send"><a title="paramiko.Channel.send
+paramiko.win_pageant.PageantConnection.send" class="py-name" href="#" onclick="return doclink('link-145', 'send', 'link-145');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">sent</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"> </tt>
+<a name="Channel.sendall_stderr"></a><div id="Channel.sendall_stderr-def"><a name="L768"></a><tt class="py-lineno"> 768</tt> <a class="py-toggle" href="#" id="Channel.sendall_stderr-toggle" onclick="return toggle('Channel.sendall_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#sendall_stderr">sendall_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.sendall_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.sendall_stderr-expanded"><a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"><tt class="py-docstring"> Send data to the channel's "stderr" stream, without allowing partial</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"><tt class="py-docstring"> results. Unlike L{send_stderr}, this method continues to send data</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"><tt class="py-docstring"> from the given string until all data has been sent or an error occurs.</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> Nothing is returned.</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> @param s: data to send to the client as "stderr" output.</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.timeout: if sending stalled for longer than the timeout</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"><tt class="py-docstring"> set by L{settimeout}.</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if an error occured before the entire string was</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"><tt class="py-docstring"> sent.</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-146', 'error', 'link-144');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">'Socket is closed'</tt><tt class="py-op">)</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-name">sent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name" targets="Method paramiko.Channel.send_stderr()=paramiko.Channel-class.html#send_stderr"><a title="paramiko.Channel.send_stderr" class="py-name" href="#" onclick="return doclink('link-147', 'send_stderr', 'link-147');">send_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">sent</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> </tt>
+<a name="Channel.makefile"></a><div id="Channel.makefile-def"><a name="L792"></a><tt class="py-lineno"> 792</tt> <a class="py-toggle" href="#" id="Channel.makefile-toggle" onclick="return toggle('Channel.makefile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#makefile">makefile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.makefile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.makefile-expanded"><a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"><tt class="py-docstring"> Return a file-like object associated with this channel. The optional</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"><tt class="py-docstring"> C{mode} and C{bufsize} arguments are interpreted the same way as by</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"><tt class="py-docstring"> the built-in C{file()} function in python.</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"><tt class="py-docstring"> @return: object which can be used for python file I/O.</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{ChannelFile}</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ChannelFile</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> </tt>
+<a name="Channel.makefile_stderr"></a><div id="Channel.makefile_stderr-def"><a name="L803"></a><tt class="py-lineno"> 803</tt> <a class="py-toggle" href="#" id="Channel.makefile_stderr-toggle" onclick="return toggle('Channel.makefile_stderr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#makefile_stderr">makefile_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.makefile_stderr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.makefile_stderr-expanded"><a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> Return a file-like object associated with this channel's stderr</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"> stream. Only channels using L{exec_command} or L{invoke_shell}</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> without a pty will ever have data on the stderr stream.</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> The optional C{mode} and C{bufsize} arguments are interpreted the</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> same way as by the built-in C{file()} function in python. For a</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> client, it only makes sense to open this file for reading. For a</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"><tt class="py-docstring"> server, it only makes sense to open this file for writing.</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> @return: object which can be used for python file I/O.</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{ChannelFile}</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-148" class="py-name" targets="Class paramiko.channel.ChannelStderrFile=paramiko.channel.ChannelStderrFile-class.html"><a title="paramiko.channel.ChannelStderrFile" class="py-name" href="#" onclick="return doclink('link-148', 'ChannelStderrFile', 'link-148');">ChannelStderrFile</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> </tt>
+<a name="Channel.fileno"></a><div id="Channel.fileno-def"><a name="L821"></a><tt class="py-lineno"> 821</tt> <a class="py-toggle" href="#" id="Channel.fileno-toggle" onclick="return toggle('Channel.fileno');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#fileno">fileno</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.fileno-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.fileno-expanded"><a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"><tt class="py-docstring"> Returns an OS-level file descriptor which can be used for polling, but</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> but I{not} for reading or writing. This is primaily to allow python's</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> C{select} module to work.</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"> The first time C{fileno} is called on a channel, a pipe is created to</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"> simulate real OS-level file descriptor (FD) behavior. Because of this,</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> two OS-level FDs are created, which will use up FDs faster than normal.</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> (You won't notice this effect unless you have hundreds of channels</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> open at the same time.)</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> @return: an OS-level file descriptor</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"><tt class="py-docstring"> @warning: This method causes channel reads to be slightly less</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> efficient.</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
paramiko.pipe.PosixPipe.fileno
-paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-155', 'fileno', 'link-155');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-comment"># create the pipe and feed in any existing data</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-op">=</tt> <tt id="link-156" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-156', 'pipe', 'link-18');">pipe</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Function paramiko.pipe.make_pipe()=paramiko.pipe-module.html#make_pipe"><a title="paramiko.pipe.make_pipe" class="py-name" href="#" onclick="return doclink('link-157', 'make_pipe', 'link-157');">make_pipe</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-name">p1</tt><tt class="py-op">,</tt> <tt class="py-name">p2</tt> <tt class="py-op">=</tt> <tt id="link-158" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-158', 'pipe', 'link-18');">pipe</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name" targets="Function paramiko.pipe.make_or_pipe()=paramiko.pipe-module.html#make_or_pipe"><a title="paramiko.pipe.make_or_pipe" class="py-name" href="#" onclick="return doclink('link-159', 'make_or_pipe', 'link-159');">make_or_pipe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">)</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.set_event()=paramiko.buffered_pipe.BufferedPipe-class.html#set_event"><a title="paramiko.buffered_pipe.BufferedPipe.set_event" class="py-name" href="#" onclick="return doclink('link-160', 'set_event', 'link-160');">set_event</a></tt><tt class="py-op">(</tt><tt class="py-name">p1</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.set_event" class="py-name" href="#" onclick="return doclink('link-161', 'set_event', 'link-160');">set_event</a></tt><tt class="py-op">(</tt><tt class="py-name">p2</tt><tt class="py-op">)</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.Channel.fileno
+paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-149', 'fileno', 'link-149');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-comment"># create the pipe and feed in any existing data</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-op">=</tt> <tt id="link-150" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-150', 'pipe', 'link-18');">pipe</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Function paramiko.pipe.make_pipe()=paramiko.pipe-module.html#make_pipe"><a title="paramiko.pipe.make_pipe" class="py-name" href="#" onclick="return doclink('link-151', 'make_pipe', 'link-151');">make_pipe</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-name">p1</tt><tt class="py-op">,</tt> <tt class="py-name">p2</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-152', 'pipe', 'link-18');">pipe</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Function paramiko.pipe.make_or_pipe()=paramiko.pipe-module.html#make_or_pipe"><a title="paramiko.pipe.make_or_pipe" class="py-name" href="#" onclick="return doclink('link-153', 'make_or_pipe', 'link-153');">make_or_pipe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">)</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.set_event()=paramiko.buffered_pipe.BufferedPipe-class.html#set_event"><a title="paramiko.buffered_pipe.BufferedPipe.set_event" class="py-name" href="#" onclick="return doclink('link-154', 'set_event', 'link-154');">set_event</a></tt><tt class="py-op">(</tt><tt class="py-name">p1</tt><tt class="py-op">)</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.set_event" class="py-name" href="#" onclick="return doclink('link-155', 'set_event', 'link-154');">set_event</a></tt><tt class="py-op">(</tt><tt class="py-name">p2</tt><tt class="py-op">)</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.Channel.fileno
paramiko.pipe.PosixPipe.fileno
-paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-162', 'fileno', 'link-155');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> </tt>
-<a name="Channel.shutdown"></a><div id="Channel.shutdown-def"><a name="L853"></a><tt class="py-lineno"> 853</tt> <a class="py-toggle" href="#" id="Channel.shutdown-toggle" onclick="return toggle('Channel.shutdown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown">shutdown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">how</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.shutdown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown-expanded"><a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> Shut down one or both halves of the connection. If C{how} is 0,</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> further receives are disallowed. If C{how} is 1, further sends</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> are disallowed. If C{how} is 2, further sends and receives are</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"><tt class="py-docstring"> disallowed. This closes the stream in one or both directions.</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"><tt class="py-docstring"> @param how: 0 (stop receiving), 1 (stop sending), or 2 (stop</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"><tt class="py-docstring"> receiving and sending).</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt class="py-docstring"> @type how: int</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-comment"># feign "read" shutdown</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_eof</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-163', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> </tt>
-<a name="Channel.shutdown_read"></a><div id="Channel.shutdown_read-def"><a name="L876"></a><tt class="py-lineno"> 876</tt> <a class="py-toggle" href="#" id="Channel.shutdown_read-toggle" onclick="return toggle('Channel.shutdown_read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown_read">shutdown_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.shutdown_read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown_read-expanded"><a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> Shutdown the receiving side of this socket, closing the stream in</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> the incoming direction. After this call, future reads on this</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> channel will fail instantly. This is a convenience method, equivalent</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> to C{shutdown(0)}, for people who don't make it a habit to</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> memorize unix constants from the 1970s.</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name" targets="Method paramiko.Channel.shutdown()=paramiko.Channel-class.html#shutdown"><a title="paramiko.Channel.shutdown" class="py-name" href="#" onclick="return doclink('link-164', 'shutdown', 'link-164');">shutdown</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> </tt>
-<a name="Channel.shutdown_write"></a><div id="Channel.shutdown_write-def"><a name="L888"></a><tt class="py-lineno"> 888</tt> <a class="py-toggle" href="#" id="Channel.shutdown_write-toggle" onclick="return toggle('Channel.shutdown_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown_write">shutdown_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.shutdown_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown_write-expanded"><a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> Shutdown the sending side of this socket, closing the stream in</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> the outgoing direction. After this call, future writes on this</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> channel will fail instantly. This is a convenience method, equivalent</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> to C{shutdown(1)}, for people who don't make it a habit to</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> memorize unix constants from the 1970s.</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.Channel.shutdown" class="py-name" href="#" onclick="return doclink('link-165', 'shutdown', 'link-164');">shutdown</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-comment">### calls from Transport</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> </tt>
-<a name="Channel._set_transport"></a><div id="Channel._set_transport-def"><a name="L904"></a><tt class="py-lineno"> 904</tt> <a class="py-toggle" href="#" id="Channel._set_transport-toggle" onclick="return toggle('Channel._set_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_transport">_set_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">transport</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._set_transport-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_transport-expanded"><a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-166', 'transport', 'link-20');">transport</a></tt> <tt class="py-op">=</tt> <tt id="link-167" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-167', 'transport', 'link-20');">transport</a></tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-168', 'logger', 'link-23');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-169" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-169', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-170', 'get_logger', 'link-25');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-171', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name" targets="Method paramiko.Transport.get_log_channel()=paramiko.Transport-class.html#get_log_channel"><a title="paramiko.Transport.get_log_channel" class="py-name" href="#" onclick="return doclink('link-172', 'get_log_channel', 'link-172');">get_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> </tt>
-<a name="Channel._set_window"></a><div id="Channel._set_window-def"><a name="L908"></a><tt class="py-lineno"> 908</tt> <a class="py-toggle" href="#" id="Channel._set_window-toggle" onclick="return toggle('Channel._set_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_window">_set_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">window_size</tt><tt class="py-op">,</tt> <tt class="py-param">max_packet_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._set_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_window-expanded"><a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">max_packet_size</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-comment"># threshold of bytes we receive before we bother to send a window update</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_threshold</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> <tt class="py-op">//</tt> <tt class="py-number">10</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
+paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-156', 'fileno', 'link-149');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> </tt>
+<a name="Channel.shutdown"></a><div id="Channel.shutdown-def"><a name="L852"></a><tt class="py-lineno"> 852</tt> <a class="py-toggle" href="#" id="Channel.shutdown-toggle" onclick="return toggle('Channel.shutdown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown">shutdown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">how</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.shutdown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown-expanded"><a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> Shut down one or both halves of the connection. If C{how} is 0,</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> further receives are disallowed. If C{how} is 1, further sends</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> are disallowed. If C{how} is 2, further sends and receives are</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> disallowed. This closes the stream in one or both directions.</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"> @param how: 0 (stop receiving), 1 (stop sending), or 2 (stop</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"><tt class="py-docstring"> receiving and sending).</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"><tt class="py-docstring"> @type how: int</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-comment"># feign "read" shutdown</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">how</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_eof</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-157', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> </tt>
+<a name="Channel.shutdown_read"></a><div id="Channel.shutdown_read-def"><a name="L875"></a><tt class="py-lineno"> 875</tt> <a class="py-toggle" href="#" id="Channel.shutdown_read-toggle" onclick="return toggle('Channel.shutdown_read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown_read">shutdown_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.shutdown_read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown_read-expanded"><a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"> Shutdown the receiving side of this socket, closing the stream in</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> the incoming direction. After this call, future reads on this</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> channel will fail instantly. This is a convenience method, equivalent</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> to C{shutdown(0)}, for people who don't make it a habit to</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> memorize unix constants from the 1970s.</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method paramiko.Channel.shutdown()=paramiko.Channel-class.html#shutdown"><a title="paramiko.Channel.shutdown" class="py-name" href="#" onclick="return doclink('link-158', 'shutdown', 'link-158');">shutdown</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> </tt>
+<a name="Channel.shutdown_write"></a><div id="Channel.shutdown_write-def"><a name="L887"></a><tt class="py-lineno"> 887</tt> <a class="py-toggle" href="#" id="Channel.shutdown_write-toggle" onclick="return toggle('Channel.shutdown_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#shutdown_write">shutdown_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.shutdown_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.shutdown_write-expanded"><a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"> Shutdown the sending side of this socket, closing the stream in</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> the outgoing direction. After this call, future writes on this</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> channel will fail instantly. This is a convenience method, equivalent</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> to C{shutdown(1)}, for people who don't make it a habit to</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> memorize unix constants from the 1970s.</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="paramiko.Channel.shutdown" class="py-name" href="#" onclick="return doclink('link-159', 'shutdown', 'link-158');">shutdown</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> <tt class="py-comment">### calls from Transport</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> </tt>
+<a name="Channel._set_transport"></a><div id="Channel._set_transport-def"><a name="L903"></a><tt class="py-lineno"> 903</tt> <a class="py-toggle" href="#" id="Channel._set_transport-toggle" onclick="return toggle('Channel._set_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_transport">_set_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">transport</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._set_transport-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_transport-expanded"><a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-160', 'transport', 'link-20');">transport</a></tt> <tt class="py-op">=</tt> <tt id="link-161" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-161', 'transport', 'link-20');">transport</a></tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-162', 'logger', 'link-23');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-163" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-163', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-164', 'get_logger', 'link-25');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-165', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Method paramiko.Transport.get_log_channel()=paramiko.Transport-class.html#get_log_channel"><a title="paramiko.Transport.get_log_channel" class="py-name" href="#" onclick="return doclink('link-166', 'get_log_channel', 'link-166');">get_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> </tt>
+<a name="Channel._set_window"></a><div id="Channel._set_window-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="Channel._set_window-toggle" onclick="return toggle('Channel._set_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_window">_set_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">window_size</tt><tt class="py-op">,</tt> <tt class="py-param">max_packet_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._set_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_window-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">max_packet_size</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-comment"># threshold of bytes we receive before we bother to send a window update</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_threshold</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> <tt class="py-op">//</tt> <tt class="py-number">10</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-167" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1285,14 +1266,14 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-173', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Max packet in: %d bytes'</tt> <tt class="py-op">%</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> </tt>
-<a name="Channel._set_remote_channel"></a><div id="Channel._set_remote_channel-def"><a name="L916"></a><tt class="py-lineno"> 916</tt> <a class="py-toggle" href="#" id="Channel._set_remote_channel-toggle" onclick="return toggle('Channel._set_remote_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_remote_channel">_set_remote_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">,</tt> <tt class="py-param">window_size</tt><tt class="py-op">,</tt> <tt class="py-param">max_packet_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._set_remote_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_remote_channel-expanded"><a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">chanid</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">,</tt> <tt id="link-174" class="py-name"><a title="paramiko.channel.MIN_PACKET_SIZE" class="py-name" href="#" onclick="return doclink('link-174', 'MIN_PACKET_SIZE', 'link-19');">MIN_PACKET_SIZE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-167', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Max packet in: %d bytes'</tt> <tt class="py-op">%</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> </tt>
+<a name="Channel._set_remote_channel"></a><div id="Channel._set_remote_channel-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="Channel._set_remote_channel-toggle" onclick="return toggle('Channel._set_remote_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_remote_channel">_set_remote_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">,</tt> <tt class="py-param">window_size</tt><tt class="py-op">,</tt> <tt class="py-param">max_packet_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._set_remote_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_remote_channel-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">chanid</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">window_size</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">,</tt> <tt id="link-168" class="py-name"><a title="paramiko.channel.MIN_PACKET_SIZE" class="py-name" href="#" onclick="return doclink('link-168', 'MIN_PACKET_SIZE', 'link-19');">MIN_PACKET_SIZE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-169" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1313,10 +1294,10 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-175', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Max packet out: %d bytes'</tt> <tt class="py-op">%</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> </tt>
-<a name="Channel._request_success"></a><div id="Channel._request_success-def"><a name="L923"></a><tt class="py-lineno"> 923</tt> <a class="py-toggle" href="#" id="Channel._request_success-toggle" onclick="return toggle('Channel._request_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_request_success">_request_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._request_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._request_success-expanded"><a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-176" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-169', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Max packet out: %d bytes'</tt> <tt class="py-op">%</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> </tt>
+<a name="Channel._request_success"></a><div id="Channel._request_success-def"><a name="L922"></a><tt class="py-lineno"> 922</tt> <a class="py-toggle" href="#" id="Channel._request_success-toggle" onclick="return toggle('Channel._request_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_request_success">_request_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._request_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._request_success-expanded"><a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-170" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1337,10 +1318,11 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-176', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Sesch channel %d request ok'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name" targets="Method paramiko.pipe.OrPipe.set()=paramiko.pipe.OrPipe-class.html#set,Method paramiko.pipe.PosixPipe.set()=paramiko.pipe.PosixPipe-class.html#set,Method paramiko.pipe.WindowsPipe.set()=paramiko.pipe.WindowsPipe-class.html#set"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-170', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Sesch channel %d request ok'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event_ready</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Method paramiko.pipe.OrPipe.set()=paramiko.pipe.OrPipe-class.html#set,Method paramiko.pipe.PosixPipe.set()=paramiko.pipe.PosixPipe-class.html#set,Method paramiko.pipe.WindowsPipe.set()=paramiko.pipe.WindowsPipe-class.html#set"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-177', 'set', 'link-177');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-171', 'set', 'link-171');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
</div><a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> </tt>
<a name="Channel._request_failed"></a><div id="Channel._request_failed-def"><a name="L928"></a><tt class="py-lineno"> 928</tt> <a class="py-toggle" href="#" id="Channel._request_failed-toggle" onclick="return toggle('Channel._request_failed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_request_failed">_request_failed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -1351,21 +1333,21 @@ paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink(
<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msgs</tt><tt class="py-op">:</tt> </tt>
<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-178', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-172', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
</div><a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> </tt>
<a name="Channel._feed"></a><div id="Channel._feed-def"><a name="L938"></a><tt class="py-lineno"> 938</tt> <a class="py-toggle" href="#" id="Channel._feed-toggle" onclick="return toggle('Channel._feed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_feed">_feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Channel._feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._feed-expanded"><a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-comment"># passed from _feed_extended</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt> </tt>
<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-179', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.feed()=paramiko.buffered_pipe.BufferedPipe-class.html#feed"><a title="paramiko.buffered_pipe.BufferedPipe.feed" class="py-name" href="#" onclick="return doclink('link-180', 'feed', 'link-180');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-173', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Method paramiko.buffered_pipe.BufferedPipe.feed()=paramiko.buffered_pipe.BufferedPipe-class.html#feed"><a title="paramiko.buffered_pipe.BufferedPipe.feed" class="py-name" href="#" onclick="return doclink('link-174', 'feed', 'link-174');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
</div><a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> </tt>
<a name="Channel._feed_extended"></a><div id="Channel._feed_extended-def"><a name="L946"></a><tt class="py-lineno"> 946</tt> <a class="py-toggle" href="#" id="Channel._feed_extended-toggle" onclick="return toggle('Channel._feed_extended');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_feed_extended">_feed_extended</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._feed_extended-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._feed_extended-expanded"><a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-181', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-182', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="Channel._feed_extended-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._feed_extended-expanded"><a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-175', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-176', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-183" class="py-name" targets="Variable paramiko.auth_handler.ERROR=paramiko.auth_handler-module.html#ERROR,Variable paramiko.channel.ERROR=paramiko.channel-module.html#ERROR,Variable paramiko.client.ERROR=paramiko.client-module.html#ERROR,Variable paramiko.common.ERROR=paramiko.common-module.html#ERROR,Variable paramiko.dsskey.ERROR=paramiko.dsskey-module.html#ERROR,Variable paramiko.hostkeys.ERROR=paramiko.hostkeys-module.html#ERROR,Variable paramiko.kex_gex.ERROR=paramiko.kex_gex-module.html#ERROR,Variable paramiko.kex_group1.ERROR=paramiko.kex_group1-module.html#ERROR,Variable paramiko.logging22.ERROR=paramiko.logging22-module.html#ERROR,Variable paramiko.packet.ERROR=paramiko.packet-module.html#ERROR,Variable paramiko.pkey.ERROR=paramiko.pkey-module.html#ERROR,Variable paramiko.rsakey.ERROR=paramiko.rsakey-module.html#ERROR,Variable paramiko.server.ERROR=paramiko.server-module.html#ERROR,Variable paramiko.sftp.ERROR=paramiko.sftp-module.html#ERROR,Variable paramiko.sftp_attr.ERROR=paramiko.sftp_attr-module.html#ERROR,Variable paramiko.sftp_client.ERROR=paramiko.sftp_client-module.html#ERROR,Variable paramiko.sftp_file.ERROR=paramiko.sftp_file-module.html#ERROR,Variable paramiko.sftp_handle.ERROR=paramiko.sftp_handle-module.html#ERROR,Variable paramiko.sftp_server.ERROR=paramiko.sftp_server-module.html#ERROR,Variable paramiko.sftp_si.ERROR=paramiko.sftp_si-module.html#ERROR,Variable paramiko.transport.ERROR=paramiko.transport-module.html#ERROR,Variable paramiko.util.ERROR=paramiko.util-module.html#ERROR"><a title="paramiko.auth_handler.ERROR
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-177" class="py-name" targets="Variable paramiko.auth_handler.ERROR=paramiko.auth_handler-module.html#ERROR,Variable paramiko.channel.ERROR=paramiko.channel-module.html#ERROR,Variable paramiko.client.ERROR=paramiko.client-module.html#ERROR,Variable paramiko.common.ERROR=paramiko.common-module.html#ERROR,Variable paramiko.dsskey.ERROR=paramiko.dsskey-module.html#ERROR,Variable paramiko.hostkeys.ERROR=paramiko.hostkeys-module.html#ERROR,Variable paramiko.kex_gex.ERROR=paramiko.kex_gex-module.html#ERROR,Variable paramiko.kex_group1.ERROR=paramiko.kex_group1-module.html#ERROR,Variable paramiko.logging22.ERROR=paramiko.logging22-module.html#ERROR,Variable paramiko.packet.ERROR=paramiko.packet-module.html#ERROR,Variable paramiko.pkey.ERROR=paramiko.pkey-module.html#ERROR,Variable paramiko.rsakey.ERROR=paramiko.rsakey-module.html#ERROR,Variable paramiko.server.ERROR=paramiko.server-module.html#ERROR,Variable paramiko.sftp.ERROR=paramiko.sftp-module.html#ERROR,Variable paramiko.sftp_attr.ERROR=paramiko.sftp_attr-module.html#ERROR,Variable paramiko.sftp_client.ERROR=paramiko.sftp_client-module.html#ERROR,Variable paramiko.sftp_file.ERROR=paramiko.sftp_file-module.html#ERROR,Variable paramiko.sftp_handle.ERROR=paramiko.sftp_handle-module.html#ERROR,Variable paramiko.sftp_server.ERROR=paramiko.sftp_server-module.html#ERROR,Variable paramiko.sftp_si.ERROR=paramiko.sftp_si-module.html#ERROR,Variable paramiko.transport.ERROR=paramiko.transport-module.html#ERROR,Variable paramiko.util.ERROR=paramiko.util-module.html#ERROR"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -1386,19 +1368,19 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-183', 'ERROR', 'link-183');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'unknown extended_data type %d; discarding'</tt> <tt class="py-op">%</tt> <tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-177', 'ERROR', 'link-177');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'unknown extended_data type %d; discarding'</tt> <tt class="py-op">%</tt> <tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">combine_stderr</tt><tt class="py-op">:</tt> </tt>
<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_feed</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.feed" class="py-name" href="#" onclick="return doclink('link-184', 'feed', 'link-180');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe.feed" class="py-name" href="#" onclick="return doclink('link-178', 'feed', 'link-174');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
</div><a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> </tt>
<a name="Channel._window_adjust"></a><div id="Channel._window_adjust-def"><a name="L957"></a><tt class="py-lineno"> 957</tt> <a class="py-toggle" href="#" id="Channel._window_adjust-toggle" onclick="return toggle('Channel._window_adjust');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_window_adjust">_window_adjust</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._window_adjust-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._window_adjust-expanded"><a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">nbytes</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-185', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="Channel._window_adjust-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._window_adjust-expanded"><a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">nbytes</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-179', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-186" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1419,79 +1401,79 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-186', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'window up %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">nbytes</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-180', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'window up %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">nbytes</tt><tt class="py-op">)</tt> </tt>
<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">+=</tt> <tt class="py-name">nbytes</tt> </tt>
<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_buffer_cv</tt><tt class="py-op">.</tt><tt class="py-name">notifyAll</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> </tt>
<a name="Channel._handle_request"></a><div id="Channel._handle_request-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="Channel._handle_request-toggle" onclick="return toggle('Channel._handle_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_handle_request">_handle_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._handle_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._handle_request-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-187', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-name">want_reply</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name" targets="Method paramiko.Message.get_boolean()=paramiko.Message-class.html#get_boolean"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-188', 'get_boolean', 'link-188');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt id="link-189" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-189', 'server', 'link-189');">server</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-190', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> </tt>
+</div><div id="Channel._handle_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._handle_request-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-181', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-name">want_reply</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method paramiko.Message.get_boolean()=paramiko.Message-class.html#get_boolean"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-182', 'get_boolean', 'link-182');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt id="link-183" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-183', 'server', 'link-183');">server</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-184', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> </tt>
<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'exit-status'</tt><tt class="py-op">:</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-191', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="paramiko.pipe.OrPipe.set
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">exit_status</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-185', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-192', 'set', 'link-177');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-186', 'set', 'link-171');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'xon-xoff'</tt><tt class="py-op">:</tt> </tt>
<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-comment"># ignore</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'pty-req'</tt><tt class="py-op">:</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">term</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-193', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-194', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-195', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-name">pixelwidth</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-196', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-197', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">modes</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-198', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-199" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-199', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">term</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-187', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-188', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-189', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-name">pixelwidth</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-190', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-191', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">modes</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-192', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-193" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-193', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-200', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method paramiko.ServerInterface.check_channel_pty_request()=paramiko.ServerInterface-class.html#check_channel_pty_request"><a title="paramiko.ServerInterface.check_channel_pty_request" class="py-name" href="#" onclick="return doclink('link-201', 'check_channel_pty_request', 'link-201');">check_channel_pty_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">term</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">pixelwidth</tt><tt class="py-op">,</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-194" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-194', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-195" class="py-name" targets="Method paramiko.ServerInterface.check_channel_pty_request()=paramiko.ServerInterface-class.html#check_channel_pty_request"><a title="paramiko.ServerInterface.check_channel_pty_request" class="py-name" href="#" onclick="return doclink('link-195', 'check_channel_pty_request', 'link-195');">check_channel_pty_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">term</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">pixelwidth</tt><tt class="py-op">,</tt> </tt>
<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt><tt class="py-op">,</tt> <tt class="py-name">modes</tt><tt class="py-op">)</tt> </tt>
<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'shell'</tt><tt class="py-op">:</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-202" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-202', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-196" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-196', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-203', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method paramiko.ServerInterface.check_channel_shell_request()=paramiko.ServerInterface-class.html#check_channel_shell_request"><a title="paramiko.ServerInterface.check_channel_shell_request" class="py-name" href="#" onclick="return doclink('link-204', 'check_channel_shell_request', 'link-204');">check_channel_shell_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-197', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name" targets="Method paramiko.ServerInterface.check_channel_shell_request()=paramiko.ServerInterface-class.html#check_channel_shell_request"><a title="paramiko.ServerInterface.check_channel_shell_request" class="py-name" href="#" onclick="return doclink('link-198', 'check_channel_shell_request', 'link-198');">check_channel_shell_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'exec'</tt><tt class="py-op">:</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-name">cmd</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-205', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-206" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-206', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-name">cmd</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-199', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-200" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-200', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-207', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-208" class="py-name" targets="Method paramiko.ServerInterface.check_channel_exec_request()=paramiko.ServerInterface-class.html#check_channel_exec_request"><a title="paramiko.ServerInterface.check_channel_exec_request" class="py-name" href="#" onclick="return doclink('link-208', 'check_channel_exec_request', 'link-208');">check_channel_exec_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">cmd</tt><tt class="py-op">)</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-201" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-201', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-202" class="py-name" targets="Method paramiko.ServerInterface.check_channel_exec_request()=paramiko.ServerInterface-class.html#check_channel_exec_request"><a title="paramiko.ServerInterface.check_channel_exec_request" class="py-name" href="#" onclick="return doclink('link-202', 'check_channel_exec_request', 'link-202');">check_channel_exec_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">cmd</tt><tt class="py-op">)</tt> </tt>
<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'subsystem'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt id="link-209" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-209', 'name', 'link-111');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-210', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-211" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-211', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt id="link-203" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-203', 'name', 'link-105');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-204', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-205" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-205', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-212', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Method paramiko.ServerInterface.check_channel_subsystem_request()=paramiko.ServerInterface-class.html#check_channel_subsystem_request"><a title="paramiko.ServerInterface.check_channel_subsystem_request" class="py-name" href="#" onclick="return doclink('link-213', 'check_channel_subsystem_request', 'link-213');">check_channel_subsystem_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-214" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-214', 'name', 'link-111');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-206" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-206', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-207" class="py-name" targets="Method paramiko.ServerInterface.check_channel_subsystem_request()=paramiko.ServerInterface-class.html#check_channel_subsystem_request"><a title="paramiko.ServerInterface.check_channel_subsystem_request" class="py-name" href="#" onclick="return doclink('link-207', 'check_channel_subsystem_request', 'link-207');">check_channel_subsystem_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-208" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-208', 'name', 'link-105');">name</a></tt><tt class="py-op">)</tt> </tt>
<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'window-change'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-215', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-216', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-name">pixelwidth</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-217', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-218', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-219" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-219', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-name">width</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-209', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-name">height</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-210', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-name">pixelwidth</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-211', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-212', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-213" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-213', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-220', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-221" class="py-name" targets="Method paramiko.ServerInterface.check_channel_window_change_request()=paramiko.ServerInterface-class.html#check_channel_window_change_request"><a title="paramiko.ServerInterface.check_channel_window_change_request" class="py-name" href="#" onclick="return doclink('link-221', 'check_channel_window_change_request', 'link-221');">check_channel_window_change_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">pixelwidth</tt><tt class="py-op">,</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-214" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-214', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-215" class="py-name" targets="Method paramiko.ServerInterface.check_channel_window_change_request()=paramiko.ServerInterface-class.html#check_channel_window_change_request"><a title="paramiko.ServerInterface.check_channel_window_change_request" class="py-name" href="#" onclick="return doclink('link-215', 'check_channel_window_change_request', 'link-215');">check_channel_window_change_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">,</tt> <tt class="py-name">pixelwidth</tt><tt class="py-op">,</tt> </tt>
<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-name">pixelheight</tt><tt class="py-op">)</tt> </tt>
<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11-req'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-name">single_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-222', 'get_boolean', 'link-188');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt class="py-name">auth_proto</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-223', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt class="py-name">auth_cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-224', 'get_string', 'link-179');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">screen_number</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-225', 'get_int', 'link-181');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-226" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-226', 'server', 'link-189');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-name">single_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-216', 'get_boolean', 'link-182');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt class="py-name">auth_proto</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-217', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt class="py-name">auth_cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-218', 'get_string', 'link-173');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">screen_number</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-219', 'get_int', 'link-175');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-220" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-220', 'server', 'link-183');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-227" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-227', 'server', 'link-189');">server</a></tt><tt class="py-op">.</tt><tt id="link-228" class="py-name" targets="Method paramiko.ServerInterface.check_channel_x11_request()=paramiko.ServerInterface-class.html#check_channel_x11_request"><a title="paramiko.ServerInterface.check_channel_x11_request" class="py-name" href="#" onclick="return doclink('link-228', 'check_channel_x11_request', 'link-228');">check_channel_x11_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">single_connection</tt><tt class="py-op">,</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt id="link-221" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-221', 'server', 'link-183');">server</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name" targets="Method paramiko.ServerInterface.check_channel_x11_request()=paramiko.ServerInterface-class.html#check_channel_x11_request"><a title="paramiko.ServerInterface.check_channel_x11_request" class="py-name" href="#" onclick="return doclink('link-222', 'check_channel_x11_request', 'link-222');">check_channel_x11_request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">single_connection</tt><tt class="py-op">,</tt> </tt>
<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> <tt class="py-name">auth_proto</tt><tt class="py-op">,</tt> <tt class="py-name">auth_cookie</tt><tt class="py-op">,</tt> <tt class="py-name">screen_number</tt><tt class="py-op">)</tt> </tt>
<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-229" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-223" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1512,12 +1494,12 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-229', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unhandled channel request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-223', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unhandled channel request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">want_reply</tt><tt class="py-op">:</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-230" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-230', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-224" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-224', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ok</tt><tt class="py-op">:</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-231', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-232" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.client.MSG_CHANNEL_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.common.MSG_CHANNEL_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.server.MSG_CHANNEL_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.util.MSG_CHANNEL_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_SUCCESS
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-225', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-226" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.client.MSG_CHANNEL_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.common.MSG_CHANNEL_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.server.MSG_CHANNEL_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.util.MSG_CHANNEL_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_SUCCESS
paramiko.channel.MSG_CHANNEL_SUCCESS
paramiko.client.MSG_CHANNEL_SUCCESS
paramiko.common.MSG_CHANNEL_SUCCESS
@@ -1537,9 +1519,9 @@ paramiko.sftp_handle.MSG_CHANNEL_SUCCESS
paramiko.sftp_server.MSG_CHANNEL_SUCCESS
paramiko.sftp_si.MSG_CHANNEL_SUCCESS
paramiko.transport.MSG_CHANNEL_SUCCESS
-paramiko.util.MSG_CHANNEL_SUCCESS" class="py-name" href="#" onclick="return doclink('link-232', 'MSG_CHANNEL_SUCCESS', 'link-232');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.MSG_CHANNEL_SUCCESS" class="py-name" href="#" onclick="return doclink('link-226', 'MSG_CHANNEL_SUCCESS', 'link-226');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-233', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-234" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.channel.MSG_CHANNEL_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.client.MSG_CHANNEL_FAILURE=paramiko.client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.common.MSG_CHANNEL_FAILURE=paramiko.common-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.packet.MSG_CHANNEL_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.server.MSG_CHANNEL_FAILURE=paramiko.server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.transport.MSG_CHANNEL_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.util.MSG_CHANNEL_FAILURE=paramiko.util-module.html#MSG_CHANNEL_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_FAILURE
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-227', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-228" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.channel.MSG_CHANNEL_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.client.MSG_CHANNEL_FAILURE=paramiko.client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.common.MSG_CHANNEL_FAILURE=paramiko.common-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.packet.MSG_CHANNEL_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.server.MSG_CHANNEL_FAILURE=paramiko.server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.transport.MSG_CHANNEL_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.util.MSG_CHANNEL_FAILURE=paramiko.util-module.html#MSG_CHANNEL_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_FAILURE
paramiko.channel.MSG_CHANNEL_FAILURE
paramiko.client.MSG_CHANNEL_FAILURE
paramiko.common.MSG_CHANNEL_FAILURE
@@ -1559,16 +1541,16 @@ paramiko.sftp_handle.MSG_CHANNEL_FAILURE
paramiko.sftp_server.MSG_CHANNEL_FAILURE
paramiko.sftp_si.MSG_CHANNEL_FAILURE
paramiko.transport.MSG_CHANNEL_FAILURE
-paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return doclink('link-234', 'MSG_CHANNEL_FAILURE', 'link-234');">MSG_CHANNEL_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-235', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-236', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return doclink('link-228', 'MSG_CHANNEL_FAILURE', 'link-228');">MSG_CHANNEL_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-229', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-230', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> </tt>
<a name="Channel._handle_eof"></a><div id="Channel._handle_eof-def"><a name="L1041"></a><tt class="py-lineno">1041</tt> <a class="py-toggle" href="#" id="Channel._handle_eof-toggle" onclick="return toggle('Channel._handle_eof');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_handle_eof">_handle_eof</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Channel._handle_eof-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._handle_eof-expanded"><a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt><tt class="py-op">:</tt> </tt>
<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="paramiko.Agent.close
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1579,8 +1561,8 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-237', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="paramiko.Agent.close
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-231', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1591,13 +1573,13 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-238', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-232', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name" targets="Method paramiko.pipe.PosixPipe.set_forever()=paramiko.pipe.PosixPipe-class.html#set_forever,Method paramiko.pipe.WindowsPipe.set_forever()=paramiko.pipe.WindowsPipe-class.html#set_forever"><a title="paramiko.pipe.PosixPipe.set_forever
-paramiko.pipe.WindowsPipe.set_forever" class="py-name" href="#" onclick="return doclink('link-239', 'set_forever', 'link-239');">set_forever</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method paramiko.pipe.PosixPipe.set_forever()=paramiko.pipe.PosixPipe-class.html#set_forever,Method paramiko.pipe.WindowsPipe.set_forever()=paramiko.pipe.WindowsPipe-class.html#set_forever"><a title="paramiko.pipe.PosixPipe.set_forever
+paramiko.pipe.WindowsPipe.set_forever" class="py-name" href="#" onclick="return doclink('link-233', 'set_forever', 'link-233');">set_forever</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-240" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-234" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1618,42 +1600,47 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-240', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF received (%s)'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-234', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF received (%s)'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> </tt>
<a name="Channel._handle_close"></a><div id="Channel._handle_close-def"><a name="L1054"></a><tt class="py-lineno">1054</tt> <a class="py-toggle" href="#" id="Channel._handle_close-toggle" onclick="return toggle('Channel._handle_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_handle_close">_handle_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Channel._handle_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._handle_close-expanded"><a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-name">msgs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_internal</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-241', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_unlink_channel</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-235', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_unlink_channel</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msgs</tt><tt class="py-op">:</tt> </tt>
<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-242', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-236', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> </tt>
<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> </tt>
<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> </tt>
<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> </tt>
<a name="Channel._log"></a><div id="Channel._log-def"><a name="L1069"></a><tt class="py-lineno">1069</tt> <a class="py-toggle" href="#" id="Channel._log-toggle" onclick="return toggle('Channel._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._log-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._log-expanded"><a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-243', 'logger', 'link-23');">logger</a></tt><tt class="py-op">.</tt><tt id="link-244" class="py-name" targets="Method paramiko.logging22.logger.log()=paramiko.logging22.logger-class.html#log"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-244', 'log', 'link-244');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-string">"[chan "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> <tt class="py-op">+</tt> <tt class="py-string">"] "</tt> <tt class="py-op">+</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+</div><div id="Channel._log-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._log-expanded"><a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-237', 'logger', 'link-23');">logger</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name" targets="Method paramiko.logging22.logger.log()=paramiko.logging22.logger-class.html#log"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-238', 'log', 'link-238');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-string">"[chan "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt> <tt class="py-op">+</tt> <tt class="py-string">"] "</tt> <tt class="py-op">+</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> </tt>
-<a name="Channel._wait_for_event"></a><div id="Channel._wait_for_event-def"><a name="L1072"></a><tt class="py-lineno">1072</tt> <a class="py-toggle" href="#" id="Channel._wait_for_event-toggle" onclick="return toggle('Channel._wait_for_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_wait_for_event">_wait_for_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._wait_for_event-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._wait_for_event-expanded"><a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-245', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-246" class="py-name" targets="Method paramiko.Transport.get_exception()=paramiko.Transport-class.html#get_exception"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-246', 'get_exception', 'link-246');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-247" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-247', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel closed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> </tt>
-<a name="Channel._set_closed"></a><div id="Channel._set_closed-def"><a name="L1084"></a><tt class="py-lineno">1084</tt> <a class="py-toggle" href="#" id="Channel._set_closed-toggle" onclick="return toggle('Channel._set_closed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_closed">_set_closed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._set_closed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_closed-expanded"><a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="paramiko.Agent.close
+<a name="Channel._event_pending"></a><div id="Channel._event_pending-def"><a name="L1072"></a><tt class="py-lineno">1072</tt> <a class="py-toggle" href="#" id="Channel._event_pending-toggle" onclick="return toggle('Channel._event_pending');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_event_pending">_event_pending</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._event_pending-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._event_pending-expanded"><a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name" targets="Method paramiko.HostKeys.clear()=paramiko.HostKeys-class.html#clear,Method paramiko.pipe.OrPipe.clear()=paramiko.pipe.OrPipe-class.html#clear,Method paramiko.pipe.PosixPipe.clear()=paramiko.pipe.PosixPipe-class.html#clear,Method paramiko.pipe.WindowsPipe.clear()=paramiko.pipe.WindowsPipe-class.html#clear"><a title="paramiko.HostKeys.clear
+paramiko.pipe.OrPipe.clear
+paramiko.pipe.PosixPipe.clear
+paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-239', 'clear', 'link-239');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event_ready</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> </tt>
+<a name="Channel._wait_for_event"></a><div id="Channel._wait_for_event-def"><a name="L1076"></a><tt class="py-lineno">1076</tt> <a class="py-toggle" href="#" id="Channel._wait_for_event-toggle" onclick="return toggle('Channel._wait_for_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_wait_for_event">_wait_for_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._wait_for_event-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._wait_for_event-expanded"><a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event_ready</tt><tt class="py-op">:</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-240', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt id="link-241" class="py-name" targets="Method paramiko.Transport.get_exception()=paramiko.Transport-class.html#get_exception"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-241', 'get_exception', 'link-241');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-242" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-242', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Channel closed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+</div><a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> </tt>
+<a name="Channel._set_closed"></a><div id="Channel._set_closed-def"><a name="L1086"></a><tt class="py-lineno">1086</tt> <a class="py-toggle" href="#" id="Channel._set_closed-toggle" onclick="return toggle('Channel._set_closed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_set_closed">_set_closed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._set_closed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._set_closed-expanded"><a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_buffer</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1664,8 +1651,8 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-248', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="paramiko.Agent.close
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-243', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_stderr_buffer</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1676,18 +1663,25 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-249', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_buffer_cv</tt><tt class="py-op">.</tt><tt class="py-name">notifyAll</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="paramiko.pipe.PosixPipe.set_forever
-paramiko.pipe.WindowsPipe.set_forever" class="py-name" href="#" onclick="return doclink('link-250', 'set_forever', 'link-239');">set_forever</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> </tt>
-<a name="Channel._send_eof"></a><div id="Channel._send_eof-def"><a name="L1093"></a><tt class="py-lineno">1093</tt> <a class="py-toggle" href="#" id="Channel._send_eof-toggle" onclick="return toggle('Channel._send_eof');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_send_eof">_send_eof</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._send_eof-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._send_eof-expanded"><a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-251', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-252', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-253" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EOF=paramiko.auth_handler-module.html#MSG_CHANNEL_EOF,Variable paramiko.channel.MSG_CHANNEL_EOF=paramiko.channel-module.html#MSG_CHANNEL_EOF,Variable paramiko.client.MSG_CHANNEL_EOF=paramiko.client-module.html#MSG_CHANNEL_EOF,Variable paramiko.common.MSG_CHANNEL_EOF=paramiko.common-module.html#MSG_CHANNEL_EOF,Variable paramiko.dsskey.MSG_CHANNEL_EOF=paramiko.dsskey-module.html#MSG_CHANNEL_EOF,Variable paramiko.hostkeys.MSG_CHANNEL_EOF=paramiko.hostkeys-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_gex.MSG_CHANNEL_EOF=paramiko.kex_gex-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_group1.MSG_CHANNEL_EOF=paramiko.kex_group1-module.html#MSG_CHANNEL_EOF,Variable paramiko.packet.MSG_CHANNEL_EOF=paramiko.packet-module.html#MSG_CHANNEL_EOF,Variable paramiko.pkey.MSG_CHANNEL_EOF=paramiko.pkey-module.html#MSG_CHANNEL_EOF,Variable paramiko.rsakey.MSG_CHANNEL_EOF=paramiko.rsakey-module.html#MSG_CHANNEL_EOF,Variable paramiko.server.MSG_CHANNEL_EOF=paramiko.server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp.MSG_CHANNEL_EOF=paramiko.sftp-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_attr.MSG_CHANNEL_EOF=paramiko.sftp_attr-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_client.MSG_CHANNEL_EOF=paramiko.sftp_client-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_file.MSG_CHANNEL_EOF=paramiko.sftp_file-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_handle.MSG_CHANNEL_EOF=paramiko.sftp_handle-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_server.MSG_CHANNEL_EOF=paramiko.sftp_server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_si.MSG_CHANNEL_EOF=paramiko.sftp_si-module.html#MSG_CHANNEL_EOF,Variable paramiko.transport.MSG_CHANNEL_EOF=paramiko.transport-module.html#MSG_CHANNEL_EOF,Variable paramiko.util.MSG_CHANNEL_EOF=paramiko.util-module.html#MSG_CHANNEL_EOF"><a title="paramiko.auth_handler.MSG_CHANNEL_EOF
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-244', 'close', 'link-26');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_buffer_cv</tt><tt class="py-op">.</tt><tt class="py-name">notifyAll</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-comment"># Notify any waiters that we are closed</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.pipe.PosixPipe.set
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-245', 'set', 'link-171');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">status_event</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.pipe.PosixPipe.set
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-246', 'set', 'link-171');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="paramiko.pipe.PosixPipe.set_forever
+paramiko.pipe.WindowsPipe.set_forever" class="py-name" href="#" onclick="return doclink('link-247', 'set_forever', 'link-233');">set_forever</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> </tt>
+<a name="Channel._send_eof"></a><div id="Channel._send_eof-def"><a name="L1098"></a><tt class="py-lineno">1098</tt> <a class="py-toggle" href="#" id="Channel._send_eof-toggle" onclick="return toggle('Channel._send_eof');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_send_eof">_send_eof</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._send_eof-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._send_eof-expanded"><a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-248" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-248', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-249', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-250" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EOF=paramiko.auth_handler-module.html#MSG_CHANNEL_EOF,Variable paramiko.channel.MSG_CHANNEL_EOF=paramiko.channel-module.html#MSG_CHANNEL_EOF,Variable paramiko.client.MSG_CHANNEL_EOF=paramiko.client-module.html#MSG_CHANNEL_EOF,Variable paramiko.common.MSG_CHANNEL_EOF=paramiko.common-module.html#MSG_CHANNEL_EOF,Variable paramiko.dsskey.MSG_CHANNEL_EOF=paramiko.dsskey-module.html#MSG_CHANNEL_EOF,Variable paramiko.hostkeys.MSG_CHANNEL_EOF=paramiko.hostkeys-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_gex.MSG_CHANNEL_EOF=paramiko.kex_gex-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_group1.MSG_CHANNEL_EOF=paramiko.kex_group1-module.html#MSG_CHANNEL_EOF,Variable paramiko.packet.MSG_CHANNEL_EOF=paramiko.packet-module.html#MSG_CHANNEL_EOF,Variable paramiko.pkey.MSG_CHANNEL_EOF=paramiko.pkey-module.html#MSG_CHANNEL_EOF,Variable paramiko.rsakey.MSG_CHANNEL_EOF=paramiko.rsakey-module.html#MSG_CHANNEL_EOF,Variable paramiko.server.MSG_CHANNEL_EOF=paramiko.server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp.MSG_CHANNEL_EOF=paramiko.sftp-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_attr.MSG_CHANNEL_EOF=paramiko.sftp_attr-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_client.MSG_CHANNEL_EOF=paramiko.sftp_client-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_file.MSG_CHANNEL_EOF=paramiko.sftp_file-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_handle.MSG_CHANNEL_EOF=paramiko.sftp_handle-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_server.MSG_CHANNEL_EOF=paramiko.sftp_server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_si.MSG_CHANNEL_EOF=paramiko.sftp_si-module.html#MSG_CHANNEL_EOF,Variable paramiko.transport.MSG_CHANNEL_EOF=paramiko.transport-module.html#MSG_CHANNEL_EOF,Variable paramiko.util.MSG_CHANNEL_EOF=paramiko.util-module.html#MSG_CHANNEL_EOF"><a title="paramiko.auth_handler.MSG_CHANNEL_EOF
paramiko.channel.MSG_CHANNEL_EOF
paramiko.client.MSG_CHANNEL_EOF
paramiko.common.MSG_CHANNEL_EOF
@@ -1707,10 +1701,10 @@ paramiko.sftp_handle.MSG_CHANNEL_EOF
paramiko.sftp_server.MSG_CHANNEL_EOF
paramiko.sftp_si.MSG_CHANNEL_EOF
paramiko.transport.MSG_CHANNEL_EOF
-paramiko.util.MSG_CHANNEL_EOF" class="py-name" href="#" onclick="return doclink('link-253', 'MSG_CHANNEL_EOF', 'link-253');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-254', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-255" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_CHANNEL_EOF" class="py-name" href="#" onclick="return doclink('link-250', 'MSG_CHANNEL_EOF', 'link-250');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-251', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-252" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1731,16 +1725,16 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-255', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF sent (%s)'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt><tt class="py-op">)</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
-</div><a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> </tt>
-<a name="Channel._close_internal"></a><div id="Channel._close_internal-def"><a name="L1104"></a><tt class="py-lineno">1104</tt> <a class="py-toggle" href="#" id="Channel._close_internal-toggle" onclick="return toggle('Channel._close_internal');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_close_internal">_close_internal</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._close_internal-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._close_internal-expanded"><a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-name">m1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_eof</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-name">m2</tt> <tt class="py-op">=</tt> <tt id="link-256" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-256', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-name">m2</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-257', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-258" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_CLOSE=paramiko.auth_handler-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.channel.MSG_CHANNEL_CLOSE=paramiko.channel-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.client.MSG_CHANNEL_CLOSE=paramiko.client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.common.MSG_CHANNEL_CLOSE=paramiko.common-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.dsskey.MSG_CHANNEL_CLOSE=paramiko.dsskey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.hostkeys.MSG_CHANNEL_CLOSE=paramiko.hostkeys-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_gex.MSG_CHANNEL_CLOSE=paramiko.kex_gex-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_group1.MSG_CHANNEL_CLOSE=paramiko.kex_group1-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.packet.MSG_CHANNEL_CLOSE=paramiko.packet-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.pkey.MSG_CHANNEL_CLOSE=paramiko.pkey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.rsakey.MSG_CHANNEL_CLOSE=paramiko.rsakey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.server.MSG_CHANNEL_CLOSE=paramiko.server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp.MSG_CHANNEL_CLOSE=paramiko.sftp-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_attr.MSG_CHANNEL_CLOSE=paramiko.sftp_attr-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_client.MSG_CHANNEL_CLOSE=paramiko.sftp_client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_file.MSG_CHANNEL_CLOSE=paramiko.sftp_file-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_handle.MSG_CHANNEL_CLOSE=paramiko.sftp_handle-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_server.MSG_CHANNEL_CLOSE=paramiko.sftp_server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_si.MSG_CHANNEL_CLOSE=paramiko.sftp_si-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.transport.MSG_CHANNEL_CLOSE=paramiko.transport-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.util.MSG_CHANNEL_CLOSE=paramiko.util-module.html#MSG_CHANNEL_CLOSE"><a title="paramiko.auth_handler.MSG_CHANNEL_CLOSE
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-252', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF sent (%s)'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
+</div><a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> </tt>
+<a name="Channel._close_internal"></a><div id="Channel._close_internal-def"><a name="L1109"></a><tt class="py-lineno">1109</tt> <a class="py-toggle" href="#" id="Channel._close_internal-toggle" onclick="return toggle('Channel._close_internal');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_close_internal">_close_internal</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._close_internal-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._close_internal-expanded"><a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-comment"># you are holding the lock.</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-name">m1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_eof</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-name">m2</tt> <tt class="py-op">=</tt> <tt id="link-253" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-253', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> <tt class="py-name">m2</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-254', 'add_byte', 'link-30');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-255" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_CLOSE=paramiko.auth_handler-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.channel.MSG_CHANNEL_CLOSE=paramiko.channel-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.client.MSG_CHANNEL_CLOSE=paramiko.client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.common.MSG_CHANNEL_CLOSE=paramiko.common-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.dsskey.MSG_CHANNEL_CLOSE=paramiko.dsskey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.hostkeys.MSG_CHANNEL_CLOSE=paramiko.hostkeys-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_gex.MSG_CHANNEL_CLOSE=paramiko.kex_gex-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_group1.MSG_CHANNEL_CLOSE=paramiko.kex_group1-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.packet.MSG_CHANNEL_CLOSE=paramiko.packet-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.pkey.MSG_CHANNEL_CLOSE=paramiko.pkey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.rsakey.MSG_CHANNEL_CLOSE=paramiko.rsakey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.server.MSG_CHANNEL_CLOSE=paramiko.server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp.MSG_CHANNEL_CLOSE=paramiko.sftp-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_attr.MSG_CHANNEL_CLOSE=paramiko.sftp_attr-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_client.MSG_CHANNEL_CLOSE=paramiko.sftp_client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_file.MSG_CHANNEL_CLOSE=paramiko.sftp_file-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_handle.MSG_CHANNEL_CLOSE=paramiko.sftp_handle-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_server.MSG_CHANNEL_CLOSE=paramiko.sftp_server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_si.MSG_CHANNEL_CLOSE=paramiko.sftp_si-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.transport.MSG_CHANNEL_CLOSE=paramiko.transport-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.util.MSG_CHANNEL_CLOSE=paramiko.util-module.html#MSG_CHANNEL_CLOSE"><a title="paramiko.auth_handler.MSG_CHANNEL_CLOSE
paramiko.channel.MSG_CHANNEL_CLOSE
paramiko.client.MSG_CHANNEL_CLOSE
paramiko.common.MSG_CHANNEL_CLOSE
@@ -1760,31 +1754,31 @@ paramiko.sftp_handle.MSG_CHANNEL_CLOSE
paramiko.sftp_server.MSG_CHANNEL_CLOSE
paramiko.sftp_si.MSG_CHANNEL_CLOSE
paramiko.transport.MSG_CHANNEL_CLOSE
-paramiko.util.MSG_CHANNEL_CLOSE" class="py-name" href="#" onclick="return doclink('link-258', 'MSG_CHANNEL_CLOSE', 'link-258');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-name">m2</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-259', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_closed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-comment"># can't unlink from the Transport yet -- the remote side may still</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># try to send meta-data (exit-status, etc)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">m1</tt><tt class="py-op">,</tt> <tt class="py-name">m2</tt> </tt>
-</div><a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> </tt>
-<a name="Channel._unlink"></a><div id="Channel._unlink-def"><a name="L1117"></a><tt class="py-lineno">1117</tt> <a class="py-toggle" href="#" id="Channel._unlink-toggle" onclick="return toggle('Channel._unlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_unlink">_unlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._unlink-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._unlink-expanded"><a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-comment"># server connection could die before we become active: still signal the close!</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_closed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-260', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_unlink_channel</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> </tt>
-<a name="Channel._check_add_window"></a><div id="Channel._check_add_window-def"><a name="L1128"></a><tt class="py-lineno">1128</tt> <a class="py-toggle" href="#" id="Channel._check_add_window-toggle" onclick="return toggle('Channel._check_add_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_check_add_window">_check_add_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">n</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._check_add_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._check_add_window-expanded"><a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-261" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_CHANNEL_CLOSE" class="py-name" href="#" onclick="return doclink('link-255', 'MSG_CHANNEL_CLOSE', 'link-255');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> <tt class="py-name">m2</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-256', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_closed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-comment"># can't unlink from the Transport yet -- the remote side may still</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> <tt class="py-comment"># try to send meta-data (exit-status, etc)</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m1</tt><tt class="py-op">,</tt> <tt class="py-name">m2</tt> </tt>
+</div><a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> </tt>
+<a name="Channel._unlink"></a><div id="Channel._unlink-def"><a name="L1122"></a><tt class="py-lineno">1122</tt> <a class="py-toggle" href="#" id="Channel._unlink-toggle" onclick="return toggle('Channel._unlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_unlink">_unlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._unlink-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._unlink-expanded"><a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-comment"># server connection could die before we become active: still signal the close!</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_closed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-257', 'transport', 'link-20');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_unlink_channel</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> </tt>
+<a name="Channel._check_add_window"></a><div id="Channel._check_add_window-def"><a name="L1133"></a><tt class="py-lineno">1133</tt> <a class="py-toggle" href="#" id="Channel._check_add_window-toggle" onclick="return toggle('Channel._check_add_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_check_add_window">_check_add_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">n</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._check_add_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._check_add_window-expanded"><a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_received</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-258" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1805,12 +1799,12 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-261', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'addwindow %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">+=</tt> <tt class="py-name">n</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_threshold</tt><tt class="py-op">:</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-262" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-258', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'addwindow %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">+=</tt> <tt class="py-name">n</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_threshold</tt><tt class="py-op">:</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-259" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1831,49 +1825,49 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-262', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'addwindow send %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> </tt>
-<a name="Channel._wait_for_send_window"></a><div id="Channel._wait_for_send_window-def"><a name="L1146"></a><tt class="py-lineno">1146</tt> <a class="py-toggle" href="#" id="Channel._wait_for_send_window-toggle" onclick="return toggle('Channel._wait_for_send_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_wait_for_send_window">_wait_for_send_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel._wait_for_send_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._wait_for_send_window-expanded"><a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"><tt class="py-docstring"> (You are already holding the lock.)</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"><tt class="py-docstring"> Wait for the send window to open up, and allocate up to C{size} bytes</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"><tt class="py-docstring"> for transmission. If no space opens up before the timeout, a timeout</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"><tt class="py-docstring"> exception is raised. Returns the number of bytes available to send</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"><tt class="py-docstring"> (may be less than requested).</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-comment"># you are already holding the lock</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-comment"># should we block?</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> <tt class="py-op">==</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-comment"># loop here in case we get woken up but a different thread has filled the buffer</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-name">then</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_buffer_cv</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">-=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">then</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-comment"># we have some window to squeeze into</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">-</tt> <tt class="py-number">64</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">-</tt> <tt class="py-number">64</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">-=</tt> <tt class="py-name">size</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-263" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-259', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'addwindow send %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt><tt class="py-op">)</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_window_sofar</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> </tt>
+<a name="Channel._wait_for_send_window"></a><div id="Channel._wait_for_send_window-def"><a name="L1151"></a><tt class="py-lineno">1151</tt> <a class="py-toggle" href="#" id="Channel._wait_for_send_window-toggle" onclick="return toggle('Channel._wait_for_send_window');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-class.html#_wait_for_send_window">_wait_for_send_window</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel._wait_for_send_window-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._wait_for_send_window-expanded"><a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"><tt class="py-docstring"> (You are already holding the lock.)</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"><tt class="py-docstring"> Wait for the send window to open up, and allocate up to C{size} bytes</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"><tt class="py-docstring"> for transmission. If no space opens up before the timeout, a timeout</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"><tt class="py-docstring"> exception is raised. Returns the number of bytes available to send</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"><tt class="py-docstring"> (may be less than requested).</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-comment"># you are already holding the lock</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-comment"># should we block?</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> <tt class="py-op">==</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-comment"># loop here in case we get woken up but a different thread has filled the buffer</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-name">then</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_buffer_cv</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">-=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">then</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">0.0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-comment"># we have some window to squeeze into</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">closed</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">eof_sent</tt><tt class="py-op">:</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">-</tt> <tt class="py-number">64</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_max_packet_size</tt> <tt class="py-op">-</tt> <tt class="py-number">64</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt> <tt class="py-op">-=</tt> <tt class="py-name">size</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-260" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1894,24 +1888,24 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-263', 'DEBUG', 'link-173');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'window down to %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
-</div></div><a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> </tt>
-<a name="ChannelFile"></a><div id="ChannelFile-def"><a name="L1185"></a><tt class="py-lineno">1185</tt> <a class="py-toggle" href="#" id="ChannelFile-toggle" onclick="return toggle('ChannelFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html">ChannelFile</a> <tt class="py-op">(</tt><tt class="py-base-class">BufferedFile</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelFile-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelFile-expanded"><a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"><tt class="py-docstring"> A file-like wrapper around L{Channel}. A ChannelFile is created by calling</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel.makefile}.</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"><tt class="py-docstring"> @bug: To correctly emulate the file object created from a socket's</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"><tt class="py-docstring"> C{makefile} method, a L{Channel} and its C{ChannelFile} should be able</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"> to be closed or garbage-collected independently. Currently, closing</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> the C{ChannelFile} does nothing but flush the buffer.</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> </tt>
-<a name="ChannelFile.__init__"></a><div id="ChannelFile.__init__-def"><a name="L1196"></a><tt class="py-lineno">1196</tt> <a class="py-toggle" href="#" id="ChannelFile.__init__-toggle" onclick="return toggle('ChannelFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelFile.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile.__init__-expanded"><a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-264" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-264', 'channel', 'link-264');">channel</a></tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-265', 'channel', 'link-264');">channel</a></tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt id="link-266" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-266', 'BufferedFile', 'link-12');">BufferedFile</a></tt><tt class="py-op">.</tt><tt id="link-267" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-260', 'DEBUG', 'link-167');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'window down to %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_window_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">size</tt> </tt>
+</div></div><a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> </tt>
+<a name="ChannelFile"></a><div id="ChannelFile-def"><a name="L1190"></a><tt class="py-lineno">1190</tt> <a class="py-toggle" href="#" id="ChannelFile-toggle" onclick="return toggle('ChannelFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html">ChannelFile</a> <tt class="py-op">(</tt><tt class="py-base-class">BufferedFile</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelFile-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelFile-expanded"><a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"> A file-like wrapper around L{Channel}. A ChannelFile is created by calling</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel.makefile}.</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"><tt class="py-docstring"> @bug: To correctly emulate the file object created from a socket's</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"><tt class="py-docstring"> C{makefile} method, a L{Channel} and its C{ChannelFile} should be able</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"><tt class="py-docstring"> to be closed or garbage-collected independently. Currently, closing</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"><tt class="py-docstring"> the C{ChannelFile} does nothing but flush the buffer.</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> </tt>
+<a name="ChannelFile.__init__"></a><div id="ChannelFile.__init__-def"><a name="L1201"></a><tt class="py-lineno">1201</tt> <a class="py-toggle" href="#" id="ChannelFile.__init__-toggle" onclick="return toggle('ChannelFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelFile.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile.__init__-expanded"><a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-261', 'channel', 'link-261');">channel</a></tt> <tt class="py-op">=</tt> <tt id="link-262" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-262', 'channel', 'link-261');">channel</a></tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt id="link-263" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-263', 'BufferedFile', 'link-12');">BufferedFile</a></tt><tt class="py-op">.</tt><tt id="link-264" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -1952,30 +1946,31 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
-paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-267', '__init__', 'link-267');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_mode</tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> </tt>
-<a name="ChannelFile.__repr__"></a><div id="ChannelFile.__repr__-def"><a name="L1201"></a><tt class="py-lineno">1201</tt> <a class="py-toggle" href="#" id="ChannelFile.__repr__-toggle" onclick="return toggle('ChannelFile.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelFile.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile.__repr__-expanded"><a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;paramiko.ChannelFile from '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-268', 'channel', 'link-264');">channel</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'&gt;'</tt> </tt>
-</div><a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> </tt>
-<a name="ChannelFile._read"></a><div id="ChannelFile._read-def"><a name="L1209"></a><tt class="py-lineno">1209</tt> <a class="py-toggle" href="#" id="ChannelFile._read-toggle" onclick="return toggle('ChannelFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelFile._read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile._read-expanded"><a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-269', 'channel', 'link-264');">channel</a></tt><tt class="py-op">.</tt><tt id="link-270" class="py-name" targets="Method paramiko.Channel.recv()=paramiko.Channel-class.html#recv,Method paramiko.win_pageant.PageantConnection.recv()=paramiko.win_pageant.PageantConnection-class.html#recv"><a title="paramiko.Channel.recv
-paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-270', 'recv', 'link-270');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"> </tt>
-<a name="ChannelFile._write"></a><div id="ChannelFile._write-def"><a name="L1212"></a><tt class="py-lineno">1212</tt> <a class="py-toggle" href="#" id="ChannelFile._write-toggle" onclick="return toggle('ChannelFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelFile._write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile._write-expanded"><a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-271" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-271', 'channel', 'link-264');">channel</a></tt><tt class="py-op">.</tt><tt id="link-272" class="py-name" targets="Method paramiko.Channel.sendall()=paramiko.Channel-class.html#sendall"><a title="paramiko.Channel.sendall" class="py-name" href="#" onclick="return doclink('link-272', 'sendall', 'link-272');">sendall</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> </tt>
-<a name="ChannelStderrFile"></a><div id="ChannelStderrFile-def"><a name="L1217"></a><tt class="py-lineno">1217</tt> <a class="py-toggle" href="#" id="ChannelStderrFile-toggle" onclick="return toggle('ChannelStderrFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html">ChannelStderrFile</a> <tt class="py-op">(</tt><tt class="py-base-class">ChannelFile</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelStderrFile-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelStderrFile-expanded"><a name="ChannelStderrFile.__init__"></a><div id="ChannelStderrFile.__init__-def"><a name="L1218"></a><tt class="py-lineno">1218</tt> <a class="py-toggle" href="#" id="ChannelStderrFile.__init__-toggle" onclick="return toggle('ChannelStderrFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelStderrFile.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile.__init__-expanded"><a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-name">ChannelFile</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="paramiko.Agent.__init__
+paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-264', '__init__', 'link-264');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set_mode</tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> </tt>
+<a name="ChannelFile.__repr__"></a><div id="ChannelFile.__repr__-def"><a name="L1206"></a><tt class="py-lineno">1206</tt> <a class="py-toggle" href="#" id="ChannelFile.__repr__-toggle" onclick="return toggle('ChannelFile.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelFile.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile.__repr__-expanded"><a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;paramiko.ChannelFile from '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-265" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-265', 'channel', 'link-261');">channel</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'&gt;'</tt> </tt>
+</div><a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> </tt>
+<a name="ChannelFile._read"></a><div id="ChannelFile._read-def"><a name="L1214"></a><tt class="py-lineno">1214</tt> <a class="py-toggle" href="#" id="ChannelFile._read-toggle" onclick="return toggle('ChannelFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelFile._read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile._read-expanded"><a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-266', 'channel', 'link-261');">channel</a></tt><tt class="py-op">.</tt><tt id="link-267" class="py-name" targets="Method paramiko.Channel.recv()=paramiko.Channel-class.html#recv,Method paramiko.win_pageant.PageantConnection.recv()=paramiko.win_pageant.PageantConnection-class.html#recv"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-267', 'recv', 'link-267');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> </tt>
+<a name="ChannelFile._write"></a><div id="ChannelFile._write-def"><a name="L1217"></a><tt class="py-lineno">1217</tt> <a class="py-toggle" href="#" id="ChannelFile._write-toggle" onclick="return toggle('ChannelFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelFile-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelFile._write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelFile._write-expanded"><a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-268', 'channel', 'link-261');">channel</a></tt><tt class="py-op">.</tt><tt id="link-269" class="py-name" targets="Method paramiko.Channel.sendall()=paramiko.Channel-class.html#sendall"><a title="paramiko.Channel.sendall" class="py-name" href="#" onclick="return doclink('link-269', 'sendall', 'link-269');">sendall</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> </tt>
+<a name="ChannelStderrFile"></a><div id="ChannelStderrFile-def"><a name="L1222"></a><tt class="py-lineno">1222</tt> <a class="py-toggle" href="#" id="ChannelStderrFile-toggle" onclick="return toggle('ChannelStderrFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html">ChannelStderrFile</a> <tt class="py-op">(</tt><tt class="py-base-class">ChannelFile</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelStderrFile-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelStderrFile-expanded"><a name="ChannelStderrFile.__init__"></a><div id="ChannelStderrFile.__init__-def"><a name="L1223"></a><tt class="py-lineno">1223</tt> <a class="py-toggle" href="#" id="ChannelStderrFile.__init__-toggle" onclick="return toggle('ChannelStderrFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelStderrFile.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile.__init__-expanded"><a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-name">ChannelFile</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -2016,19 +2011,20 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
-paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-273', '__init__', 'link-267');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-274" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-274', 'channel', 'link-264');">channel</a></tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> </tt>
-<a name="ChannelStderrFile._read"></a><div id="ChannelStderrFile._read-def"><a name="L1221"></a><tt class="py-lineno">1221</tt> <a class="py-toggle" href="#" id="ChannelStderrFile._read-toggle" onclick="return toggle('ChannelStderrFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelStderrFile._read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile._read-expanded"><a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-275', 'channel', 'link-264');">channel</a></tt><tt class="py-op">.</tt><tt id="link-276" class="py-name" targets="Method paramiko.Channel.recv_stderr()=paramiko.Channel-class.html#recv_stderr"><a title="paramiko.Channel.recv_stderr" class="py-name" href="#" onclick="return doclink('link-276', 'recv_stderr', 'link-276');">recv_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> </tt>
-<a name="ChannelStderrFile._write"></a><div id="ChannelStderrFile._write-def"><a name="L1224"></a><tt class="py-lineno">1224</tt> <a class="py-toggle" href="#" id="ChannelStderrFile._write-toggle" onclick="return toggle('ChannelStderrFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelStderrFile._write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile._write-expanded"><a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-277', 'channel', 'link-264');">channel</a></tt><tt class="py-op">.</tt><tt id="link-278" class="py-name" targets="Method paramiko.Channel.sendall_stderr()=paramiko.Channel-class.html#sendall_stderr"><a title="paramiko.Channel.sendall_stderr" class="py-name" href="#" onclick="return doclink('link-278', 'sendall_stderr', 'link-278');">sendall_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"><tt class="py-comment"># vim: set shiftwidth=4 expandtab :</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt><script type="text/javascript">
+paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-270', '__init__', 'link-264');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-271" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-271', 'channel', 'link-261');">channel</a></tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> </tt>
+<a name="ChannelStderrFile._read"></a><div id="ChannelStderrFile._read-def"><a name="L1226"></a><tt class="py-lineno">1226</tt> <a class="py-toggle" href="#" id="ChannelStderrFile._read-toggle" onclick="return toggle('ChannelStderrFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelStderrFile._read-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile._read-expanded"><a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-272', 'channel', 'link-261');">channel</a></tt><tt class="py-op">.</tt><tt id="link-273" class="py-name" targets="Method paramiko.Channel.recv_stderr()=paramiko.Channel-class.html#recv_stderr"><a title="paramiko.Channel.recv_stderr" class="py-name" href="#" onclick="return doclink('link-273', 'recv_stderr', 'link-273');">recv_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> </tt>
+<a name="ChannelStderrFile._write"></a><div id="ChannelStderrFile._write-def"><a name="L1229"></a><tt class="py-lineno">1229</tt> <a class="py-toggle" href="#" id="ChannelStderrFile._write-toggle" onclick="return toggle('ChannelStderrFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.ChannelStderrFile-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelStderrFile._write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelStderrFile._write-expanded"><a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-274', 'channel', 'link-261');">channel</a></tt><tt class="py-op">.</tt><tt id="link-275" class="py-name" targets="Method paramiko.Channel.sendall_stderr()=paramiko.Channel-class.html#sendall_stderr"><a title="paramiko.Channel.sendall_stderr" class="py-name" href="#" onclick="return doclink('link-275', 'sendall_stderr', 'link-275');">sendall_stderr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"><tt class="py-comment"># vim: set shiftwidth=4 expandtab :</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -2061,7 +2057,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:34 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.channel.ChannelStderrFile-class.html b/docs/paramiko.channel.ChannelStderrFile-class.html
index c9faf36..16f4cfd 100644
--- a/docs/paramiko.channel.ChannelStderrFile-class.html
+++ b/docs/paramiko.channel.ChannelStderrFile-class.html
@@ -116,13 +116,16 @@
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -232,7 +235,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.client-module.html b/docs/paramiko.client-module.html
index a5a17b2..2035457 100644
--- a/docs/paramiko.client-module.html
+++ b/docs/paramiko.client-module.html
@@ -69,6 +69,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="SSH_PORT"></a><span class="summary-name">SSH_PORT</span> = <code title="22">22</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</code>
</td>
</tr>
@@ -416,6 +423,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -503,7 +517,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.client-pysrc.html b/docs/paramiko.client-pysrc.html
index 760992c..31ac874 100644
--- a/docs/paramiko.client-pysrc.html
+++ b/docs/paramiko.client-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.client-module.html" onclick="show_private();">Module paramiko.client</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{SSHClient}.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -92,43 +92,45 @@
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-21" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-21', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-22', 'transport', 'link-22');">transport</a></tt> <tt class="py-keyword">import</tt> <tt id="link-23" class="py-name" targets="Class paramiko.Transport=paramiko.Transport-class.html"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-23', 'Transport', 'link-23');">Transport</a></tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
-<a name="MissingHostKeyPolicy"></a><div id="MissingHostKeyPolicy-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="MissingHostKeyPolicy-toggle" onclick="return toggle('MissingHostKeyPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MissingHostKeyPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MissingHostKeyPolicy-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> Interface for defining the policy that L{SSHClient} should use when the</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> SSH server's hostname is not in either the system host keys or the</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> application's keys. Pre-made classes implement policies for automatically</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> adding the key to the application's L{HostKeys} object (L{AutoAddPolicy}),</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> and for automatically rejecting the key (L{RejectPolicy}).</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> This function may be used to ask the user to verify the key, for example.</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
-<a name="MissingHostKeyPolicy.missing_host_key"></a><div id="MissingHostKeyPolicy.missing_host_key-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="MissingHostKeyPolicy.missing_host_key-toggle" onclick="return toggle('MissingHostKeyPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.MissingHostKeyPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MissingHostKeyPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MissingHostKeyPolicy.missing_host_key-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> Called when an L{SSHClient} receives a server key for a server that</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> isn't in either the system or local L{HostKeys} object. To accept</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> the key, simply return. To reject, raised an exception (which will</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> be passed to the calling application).</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div></div><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
-<a name="AutoAddPolicy"></a><div id="AutoAddPolicy-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="AutoAddPolicy-toggle" onclick="return toggle('AutoAddPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.AutoAddPolicy-class.html">AutoAddPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AutoAddPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AutoAddPolicy-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> Policy for automatically adding the hostname and new host key to the</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> local L{HostKeys} object, and saving it. This is used by L{SSHClient}.</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
-<a name="AutoAddPolicy.missing_host_key"></a><div id="AutoAddPolicy.missing_host_key-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="AutoAddPolicy.missing_host_key-toggle" onclick="return toggle('AutoAddPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.AutoAddPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AutoAddPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AutoAddPolicy.missing_host_key-expanded"><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt id="link-24" class="py-name" targets="Module paramiko.client=paramiko.client-module.html"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-24', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
-paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-25', 'add', 'link-25');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable paramiko.client.SSH_PORT=paramiko.client-module.html#SSH_PORT"><a title="paramiko.client.SSH_PORT" class="py-name" href="#" onclick="return doclink('link-24', 'SSH_PORT', 'link-24');">SSH_PORT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">22</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> </tt>
+<a name="MissingHostKeyPolicy"></a><div id="MissingHostKeyPolicy-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="MissingHostKeyPolicy-toggle" onclick="return toggle('MissingHostKeyPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MissingHostKeyPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MissingHostKeyPolicy-expanded"><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> Interface for defining the policy that L{SSHClient} should use when the</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> SSH server's hostname is not in either the system host keys or the</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> application's keys. Pre-made classes implement policies for automatically</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> adding the key to the application's L{HostKeys} object (L{AutoAddPolicy}),</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> and for automatically rejecting the key (L{RejectPolicy}).</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"> This function may be used to ask the user to verify the key, for example.</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
+<a name="MissingHostKeyPolicy.missing_host_key"></a><div id="MissingHostKeyPolicy.missing_host_key-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="MissingHostKeyPolicy.missing_host_key-toggle" onclick="return toggle('MissingHostKeyPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.MissingHostKeyPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MissingHostKeyPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="MissingHostKeyPolicy.missing_host_key-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> Called when an L{SSHClient} receives a server key for a server that</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> isn't in either the system or local L{HostKeys} object. To accept</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> the key, simply return. To reject, raised an exception (which will</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> be passed to the calling application).</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="AutoAddPolicy"></a><div id="AutoAddPolicy-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="AutoAddPolicy-toggle" onclick="return toggle('AutoAddPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.AutoAddPolicy-class.html">AutoAddPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AutoAddPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AutoAddPolicy-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> Policy for automatically adding the hostname and new host key to the</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> local L{HostKeys} object, and saving it. This is used by L{SSHClient}.</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
+<a name="AutoAddPolicy.missing_host_key"></a><div id="AutoAddPolicy.missing_host_key-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="AutoAddPolicy.missing_host_key-toggle" onclick="return toggle('AutoAddPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.AutoAddPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AutoAddPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AutoAddPolicy.missing_host_key-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-25" class="py-name" targets="Module paramiko.client=paramiko.client-module.html"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-25', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-26', 'add', 'link-26');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-26', 'get_name', 'link-26');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-27" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-27', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-28" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-28', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method paramiko.SSHClient.save_host_keys()=paramiko.SSHClient-class.html#save_host_keys"><a title="paramiko.SSHClient.save_host_keys" class="py-name" href="#" onclick="return doclink('link-29', 'save_host_keys', 'link-29');">save_host_keys</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-30', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt id="link-31" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-31', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-27', 'get_name', 'link-27');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-28" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-28', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-29', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method paramiko.SSHClient.save_host_keys()=paramiko.SSHClient-class.html#save_host_keys"><a title="paramiko.SSHClient.save_host_keys" class="py-name" href="#" onclick="return doclink('link-30', 'save_host_keys', 'link-30');">save_host_keys</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-31', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-32', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -149,22 +151,22 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-32', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Adding %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-33', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Adding %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-33', 'get_name', 'link-26');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.PKey.get_fingerprint()=paramiko.PKey-class.html#get_fingerprint"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-34', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
-<a name="RejectPolicy"></a><div id="RejectPolicy-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="RejectPolicy-toggle" onclick="return toggle('RejectPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.RejectPolicy-class.html">RejectPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RejectPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RejectPolicy-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> Policy for automatically rejecting the unknown hostname &amp; key. This is</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> used by L{SSHClient}.</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
-<a name="RejectPolicy.missing_host_key"></a><div id="RejectPolicy.missing_host_key-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="RejectPolicy.missing_host_key-toggle" onclick="return toggle('RejectPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.RejectPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RejectPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RejectPolicy.missing_host_key-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-35', 'client', 'link-24');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-34', 'get_name', 'link-27');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method paramiko.PKey.get_fingerprint()=paramiko.PKey-class.html#get_fingerprint"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-35', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="RejectPolicy"></a><div id="RejectPolicy-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="RejectPolicy-toggle" onclick="return toggle('RejectPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.RejectPolicy-class.html">RejectPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RejectPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RejectPolicy-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> Policy for automatically rejecting the unknown hostname &amp; key. This is</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> used by L{SSHClient}.</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
+<a name="RejectPolicy.missing_host_key"></a><div id="RejectPolicy.missing_host_key-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="RejectPolicy.missing_host_key-toggle" onclick="return toggle('RejectPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.RejectPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RejectPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RejectPolicy.missing_host_key-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-36" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-36', 'client', 'link-25');">client</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -185,127 +187,127 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-36', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-37', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-37', 'get_name', 'link-26');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-38', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-39" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-39', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown server %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
-<a name="WarningPolicy"></a><div id="WarningPolicy-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="WarningPolicy-toggle" onclick="return toggle('WarningPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.WarningPolicy-class.html">WarningPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="WarningPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WarningPolicy-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> Policy for logging a python-style warning for an unknown host key, but</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> accepting it. This is used by L{SSHClient}.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="WarningPolicy.missing_host_key"></a><div id="WarningPolicy.missing_host_key-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="WarningPolicy.missing_host_key-toggle" onclick="return toggle('WarningPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.WarningPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="WarningPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WarningPolicy.missing_host_key-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-38', 'get_name', 'link-27');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-39', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-40" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-40', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown server %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
+<a name="WarningPolicy"></a><div id="WarningPolicy-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="WarningPolicy-toggle" onclick="return toggle('WarningPolicy');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.WarningPolicy-class.html">WarningPolicy</a> <tt class="py-op">(</tt><tt class="py-base-class">MissingHostKeyPolicy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WarningPolicy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WarningPolicy-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> Policy for logging a python-style warning for an unknown host key, but</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> accepting it. This is used by L{SSHClient}.</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="WarningPolicy.missing_host_key"></a><div id="WarningPolicy.missing_host_key-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="WarningPolicy.missing_host_key-toggle" onclick="return toggle('WarningPolicy.missing_host_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.WarningPolicy-class.html#missing_host_key">missing_host_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WarningPolicy.missing_host_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WarningPolicy.missing_host_key-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown %s host key for %s: %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-40', 'get_name', 'link-26');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-41', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> </tt>
-<a name="SSHClient"></a><div id="SSHClient-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="SSHClient-toggle" onclick="return toggle('SSHClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html">SSHClient</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SSHClient-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> A high-level representation of a session with an SSH server. This class</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> wraps L{Transport}, L{Channel}, and L{SFTPClient} to take care of most</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> aspects of authenticating and opening channels. A typical use case is::</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> client = SSHClient()</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> client.load_system_host_keys()</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> client.connect('ssh.example.com')</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> stdin, stdout, stderr = client.exec_command('ls -l')</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> You may pass in explicit overrides for authentication and server host key</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> checking. The default mechanism is to try to use local key files or an</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> SSH agent (if one is running).</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.__init__"></a><div id="SSHClient.__init__-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="SSHClient.__init__-toggle" onclick="return toggle('SSHClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.__init__-expanded"><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> Create a new SSHClient.</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-42', 'HostKeys', 'link-10');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-43', 'HostKeys', 'link-10');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name" targets="Class paramiko.RejectPolicy=paramiko.RejectPolicy-class.html"><a title="paramiko.RejectPolicy" class="py-name" href="#" onclick="return doclink('link-44', 'RejectPolicy', 'link-44');">RejectPolicy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.load_system_host_keys"></a><div id="SSHClient.load_system_host_keys-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="SSHClient.load_system_host_keys-toggle" onclick="return toggle('SSHClient.load_system_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#load_system_host_keys">load_system_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.load_system_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.load_system_host_keys-expanded"><a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> Load host keys from a system (read-only) file. Host keys read with</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> this method will not be saved back by L{save_host_keys}.</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> This method can be called multiple times. Each new set of host keys</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> will be merged with the existing set (new replacing old if there are</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> conflicts).</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> If C{filename} is left as C{None}, an attempt will be made to read</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> keys from the user's local "known hosts" file, as used by OpenSSH,</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> and no exception will be raised if the file can't be read. This is</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> probably only useful on posix.</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to read, or C{None}</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if a filename was provided and the file could not be</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> read</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-comment"># try the user's .ssh key file, and mask exceptions</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/known_hosts'</tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method paramiko.HostKeys.load()=paramiko.HostKeys-class.html#load"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-45', 'load', 'link-45');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-46', 'load', 'link-45');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.load_host_keys"></a><div id="SSHClient.load_host_keys-def"><a name="L155"></a><tt class="py-lineno">155</tt> <a class="py-toggle" href="#" id="SSHClient.load_host_keys-toggle" onclick="return toggle('SSHClient.load_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#load_host_keys">load_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.load_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.load_host_keys-expanded"><a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> Load host keys from a local host-key file. Host keys read with this</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> method will be checked I{after} keys loaded via L{load_system_host_keys},</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> but will be saved back by L{save_host_keys} (so they can be modified).</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> The missing host key policy L{AutoAddPolicy} adds keys to this set and</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> saves them, when connecting to a previously-unknown server.</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> This method can be called multiple times. Each new set of host keys</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> will be merged with the existing set (new replacing old if there are</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> conflicts). When automatically saving, the last hostname is used.</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to read</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the filename could not be read</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-47', 'load', 'link-45');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.save_host_keys"></a><div id="SSHClient.save_host_keys-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="SSHClient.save_host_keys-toggle" onclick="return toggle('SSHClient.save_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#save_host_keys">save_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.save_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.save_host_keys-expanded"><a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> Save the host keys back to a file. Only the host keys loaded with</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> L{load_host_keys} (plus any added directly) will be saved -- not any</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> host keys loaded with L{load_system_host_keys}.</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to save to</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the file could not be written</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-48', 'open', 'link-48');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-49', 'write', 'link-49');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'# SSH host keys collected by paramiko\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-50', 'keys', 'link-50');">keys</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-51" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-51', 'keys', 'link-50');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-52', 'write', 'link-49');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s %s %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method paramiko.PKey.get_base64()=paramiko.PKey-class.html#get_base64"><a title="paramiko.PKey.get_base64" class="py-name" href="#" onclick="return doclink('link-53', 'get_base64', 'link-53');">get_base64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-41', 'get_name', 'link-27');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-42', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
+<a name="SSHClient"></a><div id="SSHClient-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="SSHClient-toggle" onclick="return toggle('SSHClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html">SSHClient</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SSHClient-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> A high-level representation of a session with an SSH server. This class</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> wraps L{Transport}, L{Channel}, and L{SFTPClient} to take care of most</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> aspects of authenticating and opening channels. A typical use case is::</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> client = SSHClient()</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> client.load_system_host_keys()</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> client.connect('ssh.example.com')</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> stdin, stdout, stderr = client.exec_command('ls -l')</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> You may pass in explicit overrides for authentication and server host key</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> checking. The default mechanism is to try to use local key files or an</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> SSH agent (if one is running).</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.__init__"></a><div id="SSHClient.__init__-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="SSHClient.__init__-toggle" onclick="return toggle('SSHClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.__init__-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> Create a new SSHClient.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-43', 'HostKeys', 'link-10');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-44', 'HostKeys', 'link-10');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name" targets="Class paramiko.RejectPolicy=paramiko.RejectPolicy-class.html"><a title="paramiko.RejectPolicy" class="py-name" href="#" onclick="return doclink('link-45', 'RejectPolicy', 'link-45');">RejectPolicy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.load_system_host_keys"></a><div id="SSHClient.load_system_host_keys-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="SSHClient.load_system_host_keys-toggle" onclick="return toggle('SSHClient.load_system_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#load_system_host_keys">load_system_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.load_system_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.load_system_host_keys-expanded"><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> Load host keys from a system (read-only) file. Host keys read with</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> this method will not be saved back by L{save_host_keys}.</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> This method can be called multiple times. Each new set of host keys</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> will be merged with the existing set (new replacing old if there are</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> conflicts).</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> If C{filename} is left as C{None}, an attempt will be made to read</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> keys from the user's local "known hosts" file, as used by OpenSSH,</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> and no exception will be raised if the file can't be read. This is</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> probably only useful on posix.</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to read, or C{None}</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if a filename was provided and the file could not be</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> read</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-comment"># try the user's .ssh key file, and mask exceptions</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/known_hosts'</tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method paramiko.HostKeys.load()=paramiko.HostKeys-class.html#load"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-46', 'load', 'link-46');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-47', 'load', 'link-46');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.load_host_keys"></a><div id="SSHClient.load_host_keys-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="SSHClient.load_host_keys-toggle" onclick="return toggle('SSHClient.load_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#load_host_keys">load_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.load_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.load_host_keys-expanded"><a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> Load host keys from a local host-key file. Host keys read with this</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> method will be checked I{after} keys loaded via L{load_system_host_keys},</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> but will be saved back by L{save_host_keys} (so they can be modified).</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> The missing host key policy L{AutoAddPolicy} adds keys to this set and</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> saves them, when connecting to a previously-unknown server.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> This method can be called multiple times. Each new set of host keys</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> will be merged with the existing set (new replacing old if there are</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> conflicts). When automatically saving, the last hostname is used.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to read</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the filename could not be read</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-48', 'load', 'link-46');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.save_host_keys"></a><div id="SSHClient.save_host_keys-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="SSHClient.save_host_keys-toggle" onclick="return toggle('SSHClient.save_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#save_host_keys">save_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.save_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.save_host_keys-expanded"><a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> Save the host keys back to a file. Only the host keys loaded with</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> L{load_host_keys} (plus any added directly) will be saved -- not any</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> host keys loaded with L{load_system_host_keys}.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename to save to</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the file could not be written</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-49', 'open', 'link-49');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-50', 'write', 'link-50');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'# SSH host keys collected by paramiko\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt id="link-51" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-51', 'keys', 'link-51');">keys</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-52" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-52', 'keys', 'link-51');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-53', 'write', 'link-50');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s %s %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.PKey.get_base64()=paramiko.PKey-class.html#get_base64"><a title="paramiko.PKey.get_base64" class="py-name" href="#" onclick="return doclink('link-54', 'get_base64', 'link-54');">get_base64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -316,154 +318,164 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-54', 'close', 'link-54');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.get_host_keys"></a><div id="SSHClient.get_host_keys-def"><a name="L193"></a><tt class="py-lineno">193</tt> <a class="py-toggle" href="#" id="SSHClient.get_host_keys-toggle" onclick="return toggle('SSHClient.get_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#get_host_keys">get_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.get_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.get_host_keys-expanded"><a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> Get the local L{HostKeys} object. This can be used to examine the</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> local host keys or change them.</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> @return: the local host keys</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{HostKeys}</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt> </tt>
-</div><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.set_log_channel"></a><div id="SSHClient.set_log_channel-def"><a name="L203"></a><tt class="py-lineno">203</tt> <a class="py-toggle" href="#" id="SSHClient.set_log_channel-toggle" onclick="return toggle('SSHClient.set_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#set_log_channel">set_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.set_log_channel-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.set_log_channel-expanded"><a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> Set the channel for logging. The default is C{"paramiko.transport"}</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> but it can be set to anything you want.</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name for logging</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-55', 'name', 'link-55');">name</a></tt> </tt>
-</div><a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.set_missing_host_key_policy"></a><div id="SSHClient.set_missing_host_key_policy-def"><a name="L213"></a><tt class="py-lineno">213</tt> <a class="py-toggle" href="#" id="SSHClient.set_missing_host_key_policy-toggle" onclick="return toggle('SSHClient.set_missing_host_key_policy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#set_missing_host_key_policy">set_missing_host_key_policy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">policy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.set_missing_host_key_policy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.set_missing_host_key_policy-expanded"><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> Set the policy to use when connecting to a server that doesn't have a</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> host key in either the system or local L{HostKeys} objects. The</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> default policy is to reject all unknown servers (using L{RejectPolicy}).</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> You may substitute L{AutoAddPolicy} or write your own policy class.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> @param policy: the policy to use when receiving a host key from a</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> previously-unknown server</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> @type policy: L{MissingHostKeyPolicy}</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt> <tt class="py-op">=</tt> <tt class="py-name">policy</tt> </tt>
-</div><a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.connect"></a><div id="SSHClient.connect-def"><a name="L226"></a><tt class="py-lineno">226</tt> <a class="py-toggle" href="#" id="SSHClient.connect-toggle" onclick="return toggle('SSHClient.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-number">22</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-param">key_filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">allow_agent</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">look_for_keys</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.connect-expanded"><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> Connect to an SSH server and authenticate to it. The server's host key</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> is checked against the system host keys (see L{load_system_host_keys})</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> and any local host keys (L{load_host_keys}). If the server's hostname</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> is not found in either set of host keys, the missing host key policy</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> is used (see L{set_missing_host_key_policy}). The default policy is</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> to reject the key and raise an L{SSHException}.</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> Authentication is attempted in the following order of priority:</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> - The C{pkey} or C{key_filename} passed in (if any)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> - Any key we can find through an SSH agent</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> - Any "id_rsa" or "id_dsa" key discoverable in C{~/.ssh/}</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> - Plain username/password auth, if a password was given</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> If a private key requires a password to unlock it, and a password is</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"> passed in, that password will be used to attempt to unlock the key.</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the server to connect to</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the server port to connect to</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as (defaults to the</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> current local username)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> @param password: a password to use for authentication or for unlocking</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> a private key</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> @param pkey: an optional private key to use for authentication</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> @type pkey: L{PKey}</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> @param key_filename: the filename, or list of filenames, of optional</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> private key(s) to try for authentication</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> @type key_filename: str or list(str)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: an optional timeout (in seconds) for the TCP connect</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> @param allow_agent: set to False to disable connecting to the SSH agent</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> @type allow_agent: bool</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> @param look_for_keys: set to False to disable searching for discoverable</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> private key files in C{~/.ssh/}</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> @type look_for_keys: bool</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadHostKeyException: if the server's host key could not be</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"> verified</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if authentication failed</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was any other error connecting or</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> establishing an SSH session</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if a socket error occurred while connecting</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_INET</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
-paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-56', 'settimeout', 'link-56');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method paramiko.SSHClient.connect()=paramiko.SSHClient-class.html#connect,Method paramiko.Transport.connect()=paramiko.Transport-class.html#connect"><a title="paramiko.SSHClient.connect
-paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-57', 'connect', 'link-57');">connect</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-58', 'Transport', 'link-23');">Transport</a></tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method paramiko.SSHClient.set_log_channel()=paramiko.SSHClient-class.html#set_log_channel,Method paramiko.Transport.set_log_channel()=paramiko.Transport-class.html#set_log_channel"><a title="paramiko.SSHClient.set_log_channel
-paramiko.Transport.set_log_channel" class="py-name" href="#" onclick="return doclink('link-59', 'set_log_channel', 'link-59');">set_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt><tt class="py-op">)</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method paramiko.Transport.start_client()=paramiko.Transport-class.html#start_client"><a title="paramiko.Transport.start_client" class="py-name" href="#" onclick="return doclink('link-60', 'start_client', 'link-60');">start_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-61', 'ResourceManager', 'link-13');">ResourceManager</a></tt><tt class="py-op">.</tt><tt class="py-name">register</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">t</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method paramiko.Transport.get_remote_server_key()=paramiko.Transport-class.html#get_remote_server_key"><a title="paramiko.Transport.get_remote_server_key" class="py-name" href="#" onclick="return doclink('link-62', 'get_remote_server_key', 'link-62');">get_remote_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">keytype</tt> <tt class="py-op">=</tt> <tt class="py-name">server_key</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-55', 'close', 'link-55');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.get_host_keys"></a><div id="SSHClient.get_host_keys-def"><a name="L195"></a><tt class="py-lineno">195</tt> <a class="py-toggle" href="#" id="SSHClient.get_host_keys-toggle" onclick="return toggle('SSHClient.get_host_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#get_host_keys">get_host_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.get_host_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.get_host_keys-expanded"><a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> Get the local L{HostKeys} object. This can be used to examine the</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> local host keys or change them.</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> @return: the local host keys</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{HostKeys}</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt> </tt>
+</div><a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.set_log_channel"></a><div id="SSHClient.set_log_channel-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="SSHClient.set_log_channel-toggle" onclick="return toggle('SSHClient.set_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#set_log_channel">set_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.set_log_channel-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.set_log_channel-expanded"><a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"> Set the channel for logging. The default is C{"paramiko.transport"}</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"><tt class="py-docstring"> but it can be set to anything you want.</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name for logging</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-56', 'name', 'link-56');">name</a></tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.set_missing_host_key_policy"></a><div id="SSHClient.set_missing_host_key_policy-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="SSHClient.set_missing_host_key_policy-toggle" onclick="return toggle('SSHClient.set_missing_host_key_policy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#set_missing_host_key_policy">set_missing_host_key_policy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">policy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.set_missing_host_key_policy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.set_missing_host_key_policy-expanded"><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> Set the policy to use when connecting to a server that doesn't have a</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> host key in either the system or local L{HostKeys} objects. The</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> default policy is to reject all unknown servers (using L{RejectPolicy}).</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> You may substitute L{AutoAddPolicy} or write your own policy class.</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> @param policy: the policy to use when receiving a host key from a</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> previously-unknown server</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> @type policy: L{MissingHostKeyPolicy}</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt> <tt class="py-op">=</tt> <tt class="py-name">policy</tt> </tt>
+</div><a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.connect"></a><div id="SSHClient.connect-def"><a name="L228"></a><tt class="py-lineno">228</tt> <a class="py-toggle" href="#" id="SSHClient.connect-toggle" onclick="return toggle('SSHClient.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">=</tt><tt id="link-57" class="py-name"><a title="paramiko.client.SSH_PORT" class="py-name" href="#" onclick="return doclink('link-57', 'SSH_PORT', 'link-24');">SSH_PORT</a></tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-param">key_filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">allow_agent</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">look_for_keys</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.connect-expanded"><a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> Connect to an SSH server and authenticate to it. The server's host key</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> is checked against the system host keys (see L{load_system_host_keys})</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> and any local host keys (L{load_host_keys}). If the server's hostname</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> is not found in either set of host keys, the missing host key policy</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> is used (see L{set_missing_host_key_policy}). The default policy is</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> to reject the key and raise an L{SSHException}.</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> Authentication is attempted in the following order of priority:</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> - The C{pkey} or C{key_filename} passed in (if any)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> - Any key we can find through an SSH agent</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> - Any "id_rsa" or "id_dsa" key discoverable in C{~/.ssh/}</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> - Plain username/password auth, if a password was given</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"> If a private key requires a password to unlock it, and a password is</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> passed in, that password will be used to attempt to unlock the key.</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the server to connect to</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the server port to connect to</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as (defaults to the</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> current local username)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> @param password: a password to use for authentication or for unlocking</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> a private key</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> @param pkey: an optional private key to use for authentication</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> @type pkey: L{PKey}</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> @param key_filename: the filename, or list of filenames, of optional</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> private key(s) to try for authentication</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"> @type key_filename: str or list(str)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: an optional timeout (in seconds) for the TCP connect</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> @param allow_agent: set to False to disable connecting to the SSH agent</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> @type allow_agent: bool</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> @param look_for_keys: set to False to disable searching for discoverable</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> private key files in C{~/.ssh/}</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> @type look_for_keys: bool</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadHostKeyException: if the server's host key could not be</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> verified</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if authentication failed</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was any other error connecting or</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> establishing an SSH session</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> @raise socket.error: if a socket error occurred while connecting</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">family</tt><tt class="py-op">,</tt> <tt class="py-name">socktype</tt><tt class="py-op">,</tt> <tt class="py-name">proto</tt><tt class="py-op">,</tt> <tt class="py-name">canonname</tt><tt class="py-op">,</tt> <tt class="py-name">sockaddr</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">getaddrinfo</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_UNSPEC</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">socktype</tt> <tt class="py-op">==</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">af</tt> <tt class="py-op">=</tt> <tt class="py-name">family</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">addr</tt> <tt class="py-op">=</tt> <tt class="py-name">sockaddr</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-58" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-58', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No suitable address family for %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">af</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
+paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-59', 'settimeout', 'link-59');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method paramiko.SSHClient.connect()=paramiko.SSHClient-class.html#connect,Method paramiko.Transport.connect()=paramiko.Transport-class.html#connect"><a title="paramiko.SSHClient.connect
+paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-60', 'connect', 'link-60');">connect</a></tt><tt class="py-op">(</tt><tt class="py-name">addr</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-61', 'Transport', 'link-23');">Transport</a></tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method paramiko.SSHClient.set_log_channel()=paramiko.SSHClient-class.html#set_log_channel,Method paramiko.Transport.set_log_channel()=paramiko.Transport-class.html#set_log_channel"><a title="paramiko.SSHClient.set_log_channel
+paramiko.Transport.set_log_channel" class="py-name" href="#" onclick="return doclink('link-62', 'set_log_channel', 'link-62');">set_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log_channel</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method paramiko.Transport.start_client()=paramiko.Transport-class.html#start_client"><a title="paramiko.Transport.start_client" class="py-name" href="#" onclick="return doclink('link-63', 'start_client', 'link-63');">start_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-64', 'ResourceManager', 'link-13');">ResourceManager</a></tt><tt class="py-op">.</tt><tt class="py-name">register</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">t</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method paramiko.Transport.get_remote_server_key()=paramiko.Transport-class.html#get_remote_server_key"><a title="paramiko.Transport.get_remote_server_key" class="py-name" href="#" onclick="return doclink('link-65', 'get_remote_server_key', 'link-65');">get_remote_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">keytype</tt> <tt class="py-op">=</tt> <tt class="py-name">server_key</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-63', 'get_name', 'link-26');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-64', 'get', 'link-64');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-65', 'get', 'link-64');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">our_server_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-66', 'get', 'link-64');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-67', 'get', 'link-64');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">our_server_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-comment"># will raise exception if the key is rejected; let that fall out</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method paramiko.AutoAddPolicy.missing_host_key()=paramiko.AutoAddPolicy-class.html#missing_host_key,Method paramiko.MissingHostKeyPolicy.missing_host_key()=paramiko.MissingHostKeyPolicy-class.html#missing_host_key,Method paramiko.RejectPolicy.missing_host_key()=paramiko.RejectPolicy-class.html#missing_host_key,Method paramiko.WarningPolicy.missing_host_key()=paramiko.WarningPolicy-class.html#missing_host_key"><a title="paramiko.AutoAddPolicy.missing_host_key
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-66', 'get_name', 'link-27');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">port</tt> <tt class="py-op">==</tt> <tt id="link-67" class="py-name"><a title="paramiko.client.SSH_PORT" class="py-name" href="#" onclick="return doclink('link-67', 'SSH_PORT', 'link-24');">SSH_PORT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">server_hostkey_name</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">server_hostkey_name</tt> <tt class="py-op">=</tt> <tt class="py-string">"[%s]:%d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_system_host_keys</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-68', 'get', 'link-68');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">server_hostkey_name</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-69', 'get', 'link-68');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">our_server_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_host_keys</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-70', 'get', 'link-68');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">server_hostkey_name</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-71', 'get', 'link-68');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">our_server_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-comment"># will raise exception if the key is rejected; let that fall out</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method paramiko.AutoAddPolicy.missing_host_key()=paramiko.AutoAddPolicy-class.html#missing_host_key,Method paramiko.MissingHostKeyPolicy.missing_host_key()=paramiko.MissingHostKeyPolicy-class.html#missing_host_key,Method paramiko.RejectPolicy.missing_host_key()=paramiko.RejectPolicy-class.html#missing_host_key,Method paramiko.WarningPolicy.missing_host_key()=paramiko.WarningPolicy-class.html#missing_host_key"><a title="paramiko.AutoAddPolicy.missing_host_key
paramiko.MissingHostKeyPolicy.missing_host_key
paramiko.RejectPolicy.missing_host_key
-paramiko.WarningPolicy.missing_host_key" class="py-name" href="#" onclick="return doclink('link-68', 'missing_host_key', 'link-68');">missing_host_key</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">server_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-comment"># if the callback returns, assume the key is ok</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">server_key</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">server_key</tt> <tt class="py-op">!=</tt> <tt class="py-name">our_server_key</tt><tt class="py-op">:</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-69" class="py-name"><a title="paramiko.BadHostKeyException" class="py-name" href="#" onclick="return doclink('link-69', 'BadHostKeyException', 'link-20');">BadHostKeyException</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">server_key</tt><tt class="py-op">,</tt> <tt class="py-name">our_server_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">username</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">getpass</tt><tt class="py-op">.</tt><tt class="py-name">getuser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">key_filename</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">key_filename</tt> <tt class="py-op">]</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-name">key_filename</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_auth</tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt id="link-70" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-70', 'pkey', 'link-70');">pkey</a></tt><tt class="py-op">,</tt> <tt class="py-name">key_filenames</tt><tt class="py-op">,</tt> <tt class="py-name">allow_agent</tt><tt class="py-op">,</tt> <tt class="py-name">look_for_keys</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.close"></a><div id="SSHClient.close-def"><a name="L317"></a><tt class="py-lineno">317</tt> <a class="py-toggle" href="#" id="SSHClient.close-toggle" onclick="return toggle('SSHClient.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.close-expanded"><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> Close this SSHClient and its underlying L{Transport}.</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.Agent.close
+paramiko.WarningPolicy.missing_host_key" class="py-name" href="#" onclick="return doclink('link-72', 'missing_host_key', 'link-72');">missing_host_key</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">server_hostkey_name</tt><tt class="py-op">,</tt> <tt class="py-name">server_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-comment"># if the callback returns, assume the key is ok</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">our_server_key</tt> <tt class="py-op">=</tt> <tt class="py-name">server_key</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">server_key</tt> <tt class="py-op">!=</tt> <tt class="py-name">our_server_key</tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-73" class="py-name"><a title="paramiko.BadHostKeyException" class="py-name" href="#" onclick="return doclink('link-73', 'BadHostKeyException', 'link-20');">BadHostKeyException</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">server_key</tt><tt class="py-op">,</tt> <tt class="py-name">our_server_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">username</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">getpass</tt><tt class="py-op">.</tt><tt class="py-name">getuser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">key_filename</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">key_filename</tt> <tt class="py-op">]</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">key_filenames</tt> <tt class="py-op">=</tt> <tt class="py-name">key_filename</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_auth</tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt id="link-74" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-74', 'pkey', 'link-74');">pkey</a></tt><tt class="py-op">,</tt> <tt class="py-name">key_filenames</tt><tt class="py-op">,</tt> <tt class="py-name">allow_agent</tt><tt class="py-op">,</tt> <tt class="py-name">look_for_keys</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.close"></a><div id="SSHClient.close-def"><a name="L329"></a><tt class="py-lineno">329</tt> <a class="py-toggle" href="#" id="SSHClient.close-toggle" onclick="return toggle('SSHClient.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.close-expanded"><a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> Close this SSHClient and its underlying L{Transport}.</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -474,92 +486,92 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-71', 'close', 'link-54');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.exec_command"></a><div id="SSHClient.exec_command-def"><a name="L326"></a><tt class="py-lineno">326</tt> <a class="py-toggle" href="#" id="SSHClient.exec_command-toggle" onclick="return toggle('SSHClient.exec_command');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#exec_command">exec_command</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.exec_command-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.exec_command-expanded"><a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> Execute a command on the SSH server. A new L{Channel} is opened and</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> the requested command is executed. The command's input and output</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> streams are returned as python C{file}-like objects representing</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> stdin, stdout, and stderr.</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> @param command: the command to execute</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"><tt class="py-docstring"> @type command: str</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-docstring"> @param bufsize: interpreted the same way as by the built-in C{file()} function in python</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"> @type bufsize: int</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> @return: the stdin, stdout, and stderr of the executing command</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(L{ChannelFile}, L{ChannelFile}, L{ChannelFile})</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server fails to execute the command</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method paramiko.Transport.open_session()=paramiko.Transport-class.html#open_session"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-72', 'open_session', 'link-72');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method paramiko.Channel.exec_command()=paramiko.Channel-class.html#exec_command,Method paramiko.SSHClient.exec_command()=paramiko.SSHClient-class.html#exec_command"><a title="paramiko.Channel.exec_command
-paramiko.SSHClient.exec_command" class="py-name" href="#" onclick="return doclink('link-73', 'exec_command', 'link-73');">exec_command</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Method paramiko.Channel.makefile()=paramiko.Channel-class.html#makefile"><a title="paramiko.Channel.makefile" class="py-name" href="#" onclick="return doclink('link-74', 'makefile', 'link-74');">makefile</a></tt><tt class="py-op">(</tt><tt class="py-string">'wb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">stdout</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.Channel.makefile" class="py-name" href="#" onclick="return doclink('link-75', 'makefile', 'link-74');">makefile</a></tt><tt class="py-op">(</tt><tt class="py-string">'rb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-name">stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method paramiko.Channel.makefile_stderr()=paramiko.Channel-class.html#makefile_stderr"><a title="paramiko.Channel.makefile_stderr" class="py-name" href="#" onclick="return doclink('link-76', 'makefile_stderr', 'link-76');">makefile_stderr</a></tt><tt class="py-op">(</tt><tt class="py-string">'rb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stdin</tt><tt class="py-op">,</tt> <tt class="py-name">stdout</tt><tt class="py-op">,</tt> <tt class="py-name">stderr</tt> </tt>
-</div><a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.invoke_shell"></a><div id="SSHClient.invoke_shell-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="SSHClient.invoke_shell-toggle" onclick="return toggle('SSHClient.invoke_shell');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#invoke_shell">invoke_shell</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">term</tt><tt class="py-op">=</tt><tt class="py-string">'vt100'</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.invoke_shell-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.invoke_shell-expanded"><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"> Start an interactive shell session on the SSH server. A new L{Channel}</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> is opened and connected to a pseudo-terminal using the requested</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> terminal type and size.</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-docstring"> @param term: the terminal type to emulate (for example, C{"vt100"})</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"><tt class="py-docstring"> @type term: str</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> @param width: the width (in characters) of the terminal window</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-docstring"> @param height: the height (in characters) of the terminal window</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new channel connected to the remote shell</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server fails to invoke a shell</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-77', 'open_session', 'link-72');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method paramiko.Channel.get_pty()=paramiko.Channel-class.html#get_pty"><a title="paramiko.Channel.get_pty" class="py-name" href="#" onclick="return doclink('link-78', 'get_pty', 'link-78');">get_pty</a></tt><tt class="py-op">(</tt><tt class="py-name">term</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method paramiko.Channel.invoke_shell()=paramiko.Channel-class.html#invoke_shell,Method paramiko.SSHClient.invoke_shell()=paramiko.SSHClient-class.html#invoke_shell"><a title="paramiko.Channel.invoke_shell
-paramiko.SSHClient.invoke_shell" class="py-name" href="#" onclick="return doclink('link-79', 'invoke_shell', 'link-79');">invoke_shell</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
-</div><a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.open_sftp"></a><div id="SSHClient.open_sftp-def"><a name="L371"></a><tt class="py-lineno">371</tt> <a class="py-toggle" href="#" id="SSHClient.open_sftp-toggle" onclick="return toggle('SSHClient.open_sftp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#open_sftp">open_sftp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.open_sftp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.open_sftp-expanded"><a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> Open an SFTP session on the SSH server.</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new SFTP session object</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-75', 'close', 'link-55');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.exec_command"></a><div id="SSHClient.exec_command-def"><a name="L338"></a><tt class="py-lineno">338</tt> <a class="py-toggle" href="#" id="SSHClient.exec_command-toggle" onclick="return toggle('SSHClient.exec_command');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#exec_command">exec_command</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">command</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.exec_command-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.exec_command-expanded"><a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> Execute a command on the SSH server. A new L{Channel} is opened and</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> the requested command is executed. The command's input and output</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> streams are returned as python C{file}-like objects representing</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> stdin, stdout, and stderr.</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"><tt class="py-docstring"> @param command: the command to execute</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-docstring"> @type command: str</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"> @param bufsize: interpreted the same way as by the built-in C{file()} function in python</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt class="py-docstring"> @type bufsize: int</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-docstring"> @return: the stdin, stdout, and stderr of the executing command</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(L{ChannelFile}, L{ChannelFile}, L{ChannelFile})</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server fails to execute the command</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method paramiko.Transport.open_session()=paramiko.Transport-class.html#open_session"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-76', 'open_session', 'link-76');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method paramiko.Channel.exec_command()=paramiko.Channel-class.html#exec_command,Method paramiko.SSHClient.exec_command()=paramiko.SSHClient-class.html#exec_command"><a title="paramiko.Channel.exec_command
+paramiko.SSHClient.exec_command" class="py-name" href="#" onclick="return doclink('link-77', 'exec_command', 'link-77');">exec_command</a></tt><tt class="py-op">(</tt><tt class="py-name">command</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method paramiko.Channel.makefile()=paramiko.Channel-class.html#makefile"><a title="paramiko.Channel.makefile" class="py-name" href="#" onclick="return doclink('link-78', 'makefile', 'link-78');">makefile</a></tt><tt class="py-op">(</tt><tt class="py-string">'wb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">stdout</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="paramiko.Channel.makefile" class="py-name" href="#" onclick="return doclink('link-79', 'makefile', 'link-78');">makefile</a></tt><tt class="py-op">(</tt><tt class="py-string">'rb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method paramiko.Channel.makefile_stderr()=paramiko.Channel-class.html#makefile_stderr"><a title="paramiko.Channel.makefile_stderr" class="py-name" href="#" onclick="return doclink('link-80', 'makefile_stderr', 'link-80');">makefile_stderr</a></tt><tt class="py-op">(</tt><tt class="py-string">'rb'</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stdin</tt><tt class="py-op">,</tt> <tt class="py-name">stdout</tt><tt class="py-op">,</tt> <tt class="py-name">stderr</tt> </tt>
+</div><a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.invoke_shell"></a><div id="SSHClient.invoke_shell-def"><a name="L361"></a><tt class="py-lineno">361</tt> <a class="py-toggle" href="#" id="SSHClient.invoke_shell-toggle" onclick="return toggle('SSHClient.invoke_shell');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#invoke_shell">invoke_shell</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">term</tt><tt class="py-op">=</tt><tt class="py-string">'vt100'</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">=</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">=</tt><tt class="py-number">24</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.invoke_shell-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.invoke_shell-expanded"><a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> Start an interactive shell session on the SSH server. A new L{Channel}</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> is opened and connected to a pseudo-terminal using the requested</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> terminal type and size.</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> @param term: the terminal type to emulate (for example, C{"vt100"})</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> @type term: str</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> @param width: the width (in characters) of the terminal window</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"><tt class="py-docstring"> @param height: the height (in characters) of the terminal window</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new channel connected to the remote shell</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server fails to invoke a shell</tt> </tt>
<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method paramiko.Transport.open_sftp_client()=paramiko.Transport-class.html#open_sftp_client"><a title="paramiko.Transport.open_sftp_client" class="py-name" href="#" onclick="return doclink('link-80', 'open_sftp_client', 'link-80');">open_sftp_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> </tt>
-<a name="SSHClient.get_transport"></a><div id="SSHClient.get_transport-def"><a name="L380"></a><tt class="py-lineno">380</tt> <a class="py-toggle" href="#" id="SSHClient.get_transport-toggle" onclick="return toggle('SSHClient.get_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#get_transport">get_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient.get_transport-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.get_transport-expanded"><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> Return the underlying L{Transport} object for this SSH connection.</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> This can be used to perform lower-level tasks, like opening specific</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"> kinds of channels.</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"> @return: the Transport for this connection</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Transport}</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> </tt>
-</div><a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> </tt>
-<a name="SSHClient._auth"></a><div id="SSHClient._auth-def"><a name="L391"></a><tt class="py-lineno">391</tt> <a class="py-toggle" href="#" id="SSHClient._auth-toggle" onclick="return toggle('SSHClient._auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#_auth">_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">,</tt> <tt class="py-param">key_filenames</tt><tt class="py-op">,</tt> <tt class="py-param">allow_agent</tt><tt class="py-op">,</tt> <tt class="py-param">look_for_keys</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient._auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient._auth-expanded"><a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"><tt class="py-docstring"> Try, in order:</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-docstring"> - The key passed in, if one was passed in.</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> - Any key we can find through an SSH agent (if allowed).</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> - Any "id_rsa" or "id_dsa" key discoverable in ~/.ssh/ (if allowed).</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> - Plain username/password auth, if a password was given.</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> (The password might be needed to unlock a private key.)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-81" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-81', 'pkey', 'link-70');">pkey</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-81', 'open_session', 'link-76');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Method paramiko.Channel.get_pty()=paramiko.Channel-class.html#get_pty"><a title="paramiko.Channel.get_pty" class="py-name" href="#" onclick="return doclink('link-82', 'get_pty', 'link-82');">get_pty</a></tt><tt class="py-op">(</tt><tt class="py-name">term</tt><tt class="py-op">,</tt> <tt class="py-name">width</tt><tt class="py-op">,</tt> <tt class="py-name">height</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method paramiko.Channel.invoke_shell()=paramiko.Channel-class.html#invoke_shell,Method paramiko.SSHClient.invoke_shell()=paramiko.SSHClient-class.html#invoke_shell"><a title="paramiko.Channel.invoke_shell
+paramiko.SSHClient.invoke_shell" class="py-name" href="#" onclick="return doclink('link-83', 'invoke_shell', 'link-83');">invoke_shell</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
+</div><a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.open_sftp"></a><div id="SSHClient.open_sftp-def"><a name="L383"></a><tt class="py-lineno">383</tt> <a class="py-toggle" href="#" id="SSHClient.open_sftp-toggle" onclick="return toggle('SSHClient.open_sftp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#open_sftp">open_sftp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.open_sftp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.open_sftp-expanded"><a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> Open an SFTP session on the SSH server.</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new SFTP session object</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method paramiko.Transport.open_sftp_client()=paramiko.Transport-class.html#open_sftp_client"><a title="paramiko.Transport.open_sftp_client" class="py-name" href="#" onclick="return doclink('link-84', 'open_sftp_client', 'link-84');">open_sftp_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> </tt>
+<a name="SSHClient.get_transport"></a><div id="SSHClient.get_transport-def"><a name="L392"></a><tt class="py-lineno">392</tt> <a class="py-toggle" href="#" id="SSHClient.get_transport-toggle" onclick="return toggle('SSHClient.get_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#get_transport">get_transport</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient.get_transport-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient.get_transport-expanded"><a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"><tt class="py-docstring"> Return the underlying L{Transport} object for this SSH connection.</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-docstring"> This can be used to perform lower-level tasks, like opening specific</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> kinds of channels.</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> @return: the Transport for this connection</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Transport}</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> </tt>
+</div><a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> </tt>
+<a name="SSHClient._auth"></a><div id="SSHClient._auth-def"><a name="L403"></a><tt class="py-lineno">403</tt> <a class="py-toggle" href="#" id="SSHClient._auth-toggle" onclick="return toggle('SSHClient._auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#_auth">_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">,</tt> <tt class="py-param">key_filenames</tt><tt class="py-op">,</tt> <tt class="py-param">allow_agent</tt><tt class="py-op">,</tt> <tt class="py-param">look_for_keys</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient._auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient._auth-expanded"><a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-docstring"> Try, in order:</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"><tt class="py-docstring"> - The key passed in, if one was passed in.</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-docstring"> - Any key we can find through an SSH agent (if allowed).</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"><tt class="py-docstring"> - Any "id_rsa" or "id_dsa" key discoverable in ~/.ssh/ (if allowed).</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"><tt class="py-docstring"> - Plain username/password auth, if a password was given.</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"><tt class="py-docstring"> (The password might be needed to unlock a private key.)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-85" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-85', 'pkey', 'link-74');">pkey</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-86" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -580,17 +592,17 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-82', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying SSH key %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt id="link-83" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-83', 'pkey', 'link-70');">pkey</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-84', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Method paramiko.Transport.auth_publickey()=paramiko.Transport-class.html#auth_publickey"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-85', 'auth_publickey', 'link-85');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-86', 'pkey', 'link-70');">pkey</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-87" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-87', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key_filename</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_filenames</tt><tt class="py-op">:</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pkey_class</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-88', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-89', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Class Method paramiko.PKey.from_private_key_file()=paramiko.PKey-class.html#from_private_key_file"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-90', 'from_private_key_file', 'link-90');">from_private_key_file</a></tt><tt class="py-op">(</tt><tt class="py-name">key_filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-86', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying SSH key %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-87', 'pkey', 'link-74');">pkey</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-88', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method paramiko.Transport.auth_publickey()=paramiko.Transport-class.html#auth_publickey"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-89', 'auth_publickey', 'link-89');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt id="link-90" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-90', 'pkey', 'link-74');">pkey</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-91" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-91', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key_filename</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_filenames</tt><tt class="py-op">:</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pkey_class</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-92" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-92', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-93', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Class Method paramiko.PKey.from_private_key_file()=paramiko.PKey-class.html#from_private_key_file"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-94', 'from_private_key_file', 'link-94');">from_private_key_file</a></tt><tt class="py-op">(</tt><tt class="py-name">key_filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -611,16 +623,16 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-91', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying key %s from %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-92', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">key_filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-93', 'auth_publickey', 'link-85');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-94" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-94', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">allow_agent</tt><tt class="py-op">:</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-95" class="py-name"><a title="paramiko.Agent" class="py-name" href="#" onclick="return doclink('link-95', 'Agent', 'link-2');">Agent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method paramiko.Agent.get_keys()=paramiko.Agent-class.html#get_keys"><a title="paramiko.Agent.get_keys" class="py-name" href="#" onclick="return doclink('link-96', 'get_keys', 'link-96');">get_keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-95', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying key %s from %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-96', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">key_filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-97', 'auth_publickey', 'link-89');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-98" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-98', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">allow_agent</tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-99" class="py-name"><a title="paramiko.Agent" class="py-name" href="#" onclick="return doclink('link-99', 'Agent', 'link-2');">Agent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method paramiko.Agent.get_keys()=paramiko.Agent-class.html#get_keys"><a title="paramiko.Agent.get_keys" class="py-name" href="#" onclick="return doclink('link-100', 'get_keys', 'link-100');">get_keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -641,34 +653,34 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-97', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying SSH agent key %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-98', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-99', 'auth_publickey', 'link-85');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-100" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-100', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">rsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/id_rsa'</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">dsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/id_dsa'</tt><tt class="py-op">)</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-101', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-102', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-comment"># look in ~/ssh/ for windows users:</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">rsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/ssh/id_rsa'</tt><tt class="py-op">)</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">dsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/ssh/id_dsa'</tt><tt class="py-op">)</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-103', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-104" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-104', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">look_for_keys</tt><tt class="py-op">:</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keyfiles</tt><tt class="py-op">:</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-105', 'from_private_key_file', 'link-90');">from_private_key_file</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-106" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-101', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying SSH agent key %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-102', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-103', 'auth_publickey', 'link-89');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-104" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-104', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">rsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/id_rsa'</tt><tt class="py-op">)</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">dsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/.ssh/id_dsa'</tt><tt class="py-op">)</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-105', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-106" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-106', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-comment"># look in ~/ssh/ for windows users:</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">rsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/ssh/id_rsa'</tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">dsa_key</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-string">'~/ssh/id_dsa'</tt><tt class="py-op">)</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-107" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-107', 'RSAKey', 'link-16');">RSAKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">rsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-108" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-108', 'DSSKey', 'link-7');">DSSKey</a></tt><tt class="py-op">,</tt> <tt class="py-name">dsa_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">look_for_keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">keyfiles</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keyfiles</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">pkey_class</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-109', 'from_private_key_file', 'link-94');">from_private_key_file</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-110" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -689,29 +701,29 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-106', 'DEBUG', 'link-32');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying discovered key %s in %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-107', 'get_fingerprint', 'link-34');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-108', 'auth_publickey', 'link-85');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-109" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-109', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method paramiko.Transport.auth_password()=paramiko.Transport-class.html#auth_password"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-110', 'auth_password', 'link-110');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-111" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-111', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-comment"># if we got an auth-failed exception earlier, re-raise it</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">saved_exception</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">saved_exception</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-112" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-112', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No authentication methods available'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> </tt>
-<a name="SSHClient._log"></a><div id="SSHClient._log-def"><a name="L472"></a><tt class="py-lineno">472</tt> <a class="py-toggle" href="#" id="SSHClient._log-toggle" onclick="return toggle('SSHClient._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHClient._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient._log-expanded"><a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> </tt><script type="text/javascript">
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-110', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Trying discovered key %s in %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.PKey.get_fingerprint" class="py-name" href="#" onclick="return doclink('link-111', 'get_fingerprint', 'link-35');">get_fingerprint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-112', 'auth_publickey', 'link-89');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-113" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-113', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method paramiko.Transport.auth_password()=paramiko.Transport-class.html#auth_password"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-114', 'auth_password', 'link-114');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-115" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-115', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-comment"># if we got an auth-failed exception earlier, re-raise it</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">saved_exception</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">saved_exception</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-116" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-116', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No authentication methods available'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> </tt>
+<a name="SSHClient._log"></a><div id="SSHClient._log-def"><a name="L484"></a><tt class="py-lineno">484</tt> <a class="py-toggle" href="#" id="SSHClient._log-toggle" onclick="return toggle('SSHClient._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.client.SSHClient-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHClient._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHClient._log-expanded"><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -744,7 +756,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.common-module.html b/docs/paramiko.common-module.html
index 75d880c..c70d5cc 100644
--- a/docs/paramiko.common-module.html
+++ b/docs/paramiko.common-module.html
@@ -418,6 +418,13 @@
<a name="OPEN_SUCCEEDED"></a><span class="summary-name">OPEN_SUCCEEDED</span> = <code title="0">0</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
</table>
<!-- ==================== VARIABLES DETAILS ==================== -->
<a name="section-VariablesDetails"></a>
@@ -502,7 +509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.common-pysrc.html b/docs/paramiko.common-pysrc.html
index 31c5a24..de49cba 100644
--- a/docs/paramiko.common-pysrc.html
+++ b/docs/paramiko.common-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.common-module.html" onclick="show_private();">Module paramiko.common</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Common constants and global variables.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -671,7 +671,7 @@ paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return docl
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-comment"># for debugging:</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-29" class="py-name" targets="Variable paramiko.auth_handler.MSG_NAMES=paramiko.auth_handler-module.html#MSG_NAMES,Variable paramiko.channel.MSG_NAMES=paramiko.channel-module.html#MSG_NAMES,Variable paramiko.client.MSG_NAMES=paramiko.client-module.html#MSG_NAMES,Variable paramiko.common.MSG_NAMES=paramiko.common-module.html#MSG_NAMES,Variable paramiko.dsskey.MSG_NAMES=paramiko.dsskey-module.html#MSG_NAMES,Variable paramiko.hostkeys.MSG_NAMES=paramiko.hostkeys-module.html#MSG_NAMES,Variable paramiko.kex_gex.MSG_NAMES=paramiko.kex_gex-module.html#MSG_NAMES,Variable paramiko.kex_group1.MSG_NAMES=paramiko.kex_group1-module.html#MSG_NAMES,Variable paramiko.packet.MSG_NAMES=paramiko.packet-module.html#MSG_NAMES,Variable paramiko.pkey.MSG_NAMES=paramiko.pkey-module.html#MSG_NAMES,Variable paramiko.rsakey.MSG_NAMES=paramiko.rsakey-module.html#MSG_NAMES,Variable paramiko.server.MSG_NAMES=paramiko.server-module.html#MSG_NAMES,Variable paramiko.sftp.MSG_NAMES=paramiko.sftp-module.html#MSG_NAMES,Variable paramiko.sftp_attr.MSG_NAMES=paramiko.sftp_attr-module.html#MSG_NAMES,Variable paramiko.sftp_client.MSG_NAMES=paramiko.sftp_client-module.html#MSG_NAMES,Variable paramiko.sftp_file.MSG_NAMES=paramiko.sftp_file-module.html#MSG_NAMES,Variable paramiko.sftp_handle.MSG_NAMES=paramiko.sftp_handle-module.html#MSG_NAMES,Variable paramiko.sftp_server.MSG_NAMES=paramiko.sftp_server-module.html#MSG_NAMES,Variable paramiko.sftp_si.MSG_NAMES=paramiko.sftp_si-module.html#MSG_NAMES,Variable paramiko.transport.MSG_NAMES=paramiko.transport-module.html#MSG_NAMES,Variable paramiko.util.MSG_NAMES=paramiko.util-module.html#MSG_NAMES"><a title="paramiko.auth_handler.MSG_NAMES
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt id="link-29" class="py-name" targets="Variable paramiko.auth_handler.MSG_NAMES=paramiko.auth_handler-module.html#MSG_NAMES,Variable paramiko.channel.MSG_NAMES=paramiko.channel-module.html#MSG_NAMES,Variable paramiko.client.MSG_NAMES=paramiko.client-module.html#MSG_NAMES,Variable paramiko.common.MSG_NAMES=paramiko.common-module.html#MSG_NAMES,Variable paramiko.dsskey.MSG_NAMES=paramiko.dsskey-module.html#MSG_NAMES,Variable paramiko.hostkeys.MSG_NAMES=paramiko.hostkeys-module.html#MSG_NAMES,Variable paramiko.kex_gex.MSG_NAMES=paramiko.kex_gex-module.html#MSG_NAMES,Variable paramiko.kex_group1.MSG_NAMES=paramiko.kex_group1-module.html#MSG_NAMES,Variable paramiko.packet.MSG_NAMES=paramiko.packet-module.html#MSG_NAMES,Variable paramiko.pkey.MSG_NAMES=paramiko.pkey-module.html#MSG_NAMES,Variable paramiko.rsakey.MSG_NAMES=paramiko.rsakey-module.html#MSG_NAMES,Variable paramiko.server.MSG_NAMES=paramiko.server-module.html#MSG_NAMES,Variable paramiko.sftp.MSG_NAMES=paramiko.sftp-module.html#MSG_NAMES,Variable paramiko.sftp_attr.MSG_NAMES=paramiko.sftp_attr-module.html#MSG_NAMES,Variable paramiko.sftp_client.MSG_NAMES=paramiko.sftp_client-module.html#MSG_NAMES,Variable paramiko.sftp_file.MSG_NAMES=paramiko.sftp_file-module.html#MSG_NAMES,Variable paramiko.sftp_handle.MSG_NAMES=paramiko.sftp_handle-module.html#MSG_NAMES,Variable paramiko.sftp_server.MSG_NAMES=paramiko.sftp_server-module.html#MSG_NAMES,Variable paramiko.sftp_si.MSG_NAMES=paramiko.sftp_si-module.html#MSG_NAMES,Variable paramiko.transport.MSG_NAMES=paramiko.transport-module.html#MSG_NAMES,Variable paramiko.util.MSG_NAMES=paramiko.util-module.html#MSG_NAMES"><a title="paramiko.auth_handler.MSG_NAMES
paramiko.channel.MSG_NAMES
paramiko.client.MSG_NAMES
paramiko.common.MSG_NAMES
@@ -1289,7 +1289,7 @@ paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return docl
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-comment"># authentication request return codes:</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-58" class="py-name" targets="Variable paramiko.auth_handler.AUTH_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_SUCCESSFUL,Variable paramiko.channel.AUTH_SUCCESSFUL=paramiko.channel-module.html#AUTH_SUCCESSFUL,Variable paramiko.client.AUTH_SUCCESSFUL=paramiko.client-module.html#AUTH_SUCCESSFUL,Variable paramiko.common.AUTH_SUCCESSFUL=paramiko.common-module.html#AUTH_SUCCESSFUL,Variable paramiko.dsskey.AUTH_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_SUCCESSFUL,Variable paramiko.packet.AUTH_SUCCESSFUL=paramiko.packet-module.html#AUTH_SUCCESSFUL,Variable paramiko.pkey.AUTH_SUCCESSFUL=paramiko.pkey-module.html#AUTH_SUCCESSFUL,Variable paramiko.rsakey.AUTH_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_SUCCESSFUL,Variable paramiko.server.AUTH_SUCCESSFUL=paramiko.server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp.AUTH_SUCCESSFUL=paramiko.sftp-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_SUCCESSFUL,Variable paramiko.transport.AUTH_SUCCESSFUL=paramiko.transport-module.html#AUTH_SUCCESSFUL,Variable paramiko.util.AUTH_SUCCESSFUL=paramiko.util-module.html#AUTH_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_SUCCESSFUL
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt id="link-58" class="py-name" targets="Variable paramiko.auth_handler.AUTH_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_SUCCESSFUL,Variable paramiko.channel.AUTH_SUCCESSFUL=paramiko.channel-module.html#AUTH_SUCCESSFUL,Variable paramiko.client.AUTH_SUCCESSFUL=paramiko.client-module.html#AUTH_SUCCESSFUL,Variable paramiko.common.AUTH_SUCCESSFUL=paramiko.common-module.html#AUTH_SUCCESSFUL,Variable paramiko.dsskey.AUTH_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_SUCCESSFUL,Variable paramiko.packet.AUTH_SUCCESSFUL=paramiko.packet-module.html#AUTH_SUCCESSFUL,Variable paramiko.pkey.AUTH_SUCCESSFUL=paramiko.pkey-module.html#AUTH_SUCCESSFUL,Variable paramiko.rsakey.AUTH_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_SUCCESSFUL,Variable paramiko.server.AUTH_SUCCESSFUL=paramiko.server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp.AUTH_SUCCESSFUL=paramiko.sftp-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_SUCCESSFUL,Variable paramiko.transport.AUTH_SUCCESSFUL=paramiko.transport-module.html#AUTH_SUCCESSFUL,Variable paramiko.util.AUTH_SUCCESSFUL=paramiko.util-module.html#AUTH_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_SUCCESSFUL
paramiko.channel.AUTH_SUCCESSFUL
paramiko.client.AUTH_SUCCESSFUL
paramiko.common.AUTH_SUCCESSFUL
@@ -1353,7 +1353,7 @@ paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('lin
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-comment"># channel request failed reasons:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-op">(</tt><tt id="link-61" class="py-name" targets="Variable paramiko.auth_handler.OPEN_SUCCEEDED=paramiko.auth_handler-module.html#OPEN_SUCCEEDED,Variable paramiko.channel.OPEN_SUCCEEDED=paramiko.channel-module.html#OPEN_SUCCEEDED,Variable paramiko.client.OPEN_SUCCEEDED=paramiko.client-module.html#OPEN_SUCCEEDED,Variable paramiko.common.OPEN_SUCCEEDED=paramiko.common-module.html#OPEN_SUCCEEDED,Variable paramiko.dsskey.OPEN_SUCCEEDED=paramiko.dsskey-module.html#OPEN_SUCCEEDED,Variable paramiko.hostkeys.OPEN_SUCCEEDED=paramiko.hostkeys-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_gex.OPEN_SUCCEEDED=paramiko.kex_gex-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_group1.OPEN_SUCCEEDED=paramiko.kex_group1-module.html#OPEN_SUCCEEDED,Variable paramiko.packet.OPEN_SUCCEEDED=paramiko.packet-module.html#OPEN_SUCCEEDED,Variable paramiko.pkey.OPEN_SUCCEEDED=paramiko.pkey-module.html#OPEN_SUCCEEDED,Variable paramiko.rsakey.OPEN_SUCCEEDED=paramiko.rsakey-module.html#OPEN_SUCCEEDED,Variable paramiko.server.OPEN_SUCCEEDED=paramiko.server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp.OPEN_SUCCEEDED=paramiko.sftp-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_attr.OPEN_SUCCEEDED=paramiko.sftp_attr-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_client.OPEN_SUCCEEDED=paramiko.sftp_client-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_file.OPEN_SUCCEEDED=paramiko.sftp_file-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_handle.OPEN_SUCCEEDED=paramiko.sftp_handle-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_server.OPEN_SUCCEEDED=paramiko.sftp_server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_si.OPEN_SUCCEEDED=paramiko.sftp_si-module.html#OPEN_SUCCEEDED,Variable paramiko.transport.OPEN_SUCCEEDED=paramiko.transport-module.html#OPEN_SUCCEEDED,Variable paramiko.util.OPEN_SUCCEEDED=paramiko.util-module.html#OPEN_SUCCEEDED"><a title="paramiko.auth_handler.OPEN_SUCCEEDED
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-op">(</tt><tt id="link-61" class="py-name" targets="Variable paramiko.auth_handler.OPEN_SUCCEEDED=paramiko.auth_handler-module.html#OPEN_SUCCEEDED,Variable paramiko.channel.OPEN_SUCCEEDED=paramiko.channel-module.html#OPEN_SUCCEEDED,Variable paramiko.client.OPEN_SUCCEEDED=paramiko.client-module.html#OPEN_SUCCEEDED,Variable paramiko.common.OPEN_SUCCEEDED=paramiko.common-module.html#OPEN_SUCCEEDED,Variable paramiko.dsskey.OPEN_SUCCEEDED=paramiko.dsskey-module.html#OPEN_SUCCEEDED,Variable paramiko.hostkeys.OPEN_SUCCEEDED=paramiko.hostkeys-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_gex.OPEN_SUCCEEDED=paramiko.kex_gex-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_group1.OPEN_SUCCEEDED=paramiko.kex_group1-module.html#OPEN_SUCCEEDED,Variable paramiko.packet.OPEN_SUCCEEDED=paramiko.packet-module.html#OPEN_SUCCEEDED,Variable paramiko.pkey.OPEN_SUCCEEDED=paramiko.pkey-module.html#OPEN_SUCCEEDED,Variable paramiko.rsakey.OPEN_SUCCEEDED=paramiko.rsakey-module.html#OPEN_SUCCEEDED,Variable paramiko.server.OPEN_SUCCEEDED=paramiko.server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp.OPEN_SUCCEEDED=paramiko.sftp-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_attr.OPEN_SUCCEEDED=paramiko.sftp_attr-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_client.OPEN_SUCCEEDED=paramiko.sftp_client-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_file.OPEN_SUCCEEDED=paramiko.sftp_file-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_handle.OPEN_SUCCEEDED=paramiko.sftp_handle-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_server.OPEN_SUCCEEDED=paramiko.sftp_server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_si.OPEN_SUCCEEDED=paramiko.sftp_si-module.html#OPEN_SUCCEEDED,Variable paramiko.transport.OPEN_SUCCEEDED=paramiko.transport-module.html#OPEN_SUCCEEDED,Variable paramiko.util.OPEN_SUCCEEDED=paramiko.util-module.html#OPEN_SUCCEEDED"><a title="paramiko.auth_handler.OPEN_SUCCEEDED
paramiko.channel.OPEN_SUCCEEDED
paramiko.client.OPEN_SUCCEEDED
paramiko.common.OPEN_SUCCEEDED
@@ -1554,7 +1554,7 @@ paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE" class="py-name" href="#
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-70" class="py-name" targets="Module paramiko.rng=paramiko.rng-module.html"><a title="paramiko.rng" class="py-name" href="#" onclick="return doclink('link-70', 'rng', 'link-70');">rng</a></tt> <tt class="py-keyword">import</tt> <tt id="link-71" class="py-name" targets="Class paramiko.rng.StrongLockingRandomPool=paramiko.rng.StrongLockingRandomPool-class.html"><a title="paramiko.rng.StrongLockingRandomPool" class="py-name" href="#" onclick="return doclink('link-71', 'StrongLockingRandomPool', 'link-71');">StrongLockingRandomPool</a></tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-comment"># keep a crypto-strong PRNG nearby</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-72" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt id="link-72" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -1883,7 +1883,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:21 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.compress-module.html b/docs/paramiko.compress-module.html
index 2c8066b..295c1b4 100644
--- a/docs/paramiko.compress-module.html
+++ b/docs/paramiko.compress-module.html
@@ -79,6 +79,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -105,7 +121,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.compress-pysrc.html b/docs/paramiko.compress-pysrc.html
index 47f4de1..0bd2dcd 100644
--- a/docs/paramiko.compress-pysrc.html
+++ b/docs/paramiko.compress-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.compress-module.html" onclick="show_private();">Module paramiko.compress</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-docstring">Compression implementations for a Transport.</tt> </tt>
<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -126,7 +126,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:34 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.compress.ZlibCompressor-class.html b/docs/paramiko.compress.ZlibCompressor-class.html
index a908778..c2a563c 100644
--- a/docs/paramiko.compress.ZlibCompressor-class.html
+++ b/docs/paramiko.compress.ZlibCompressor-class.html
@@ -108,6 +108,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -115,7 +116,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -197,7 +200,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.compress.ZlibDecompressor-class.html b/docs/paramiko.compress.ZlibDecompressor-class.html
index 2b17b39..12ae537 100644
--- a/docs/paramiko.compress.ZlibDecompressor-class.html
+++ b/docs/paramiko.compress.ZlibDecompressor-class.html
@@ -108,6 +108,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -115,7 +116,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -197,7 +200,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.config-module.html b/docs/paramiko.config-module.html
index 36e5820..bc74169 100644
--- a/docs/paramiko.config-module.html
+++ b/docs/paramiko.config-module.html
@@ -57,6 +57,22 @@
<p><a href="paramiko.SSHConfig-class.html"
class="link">SSHConfig</a>.</p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -83,7 +99,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.config-pysrc.html b/docs/paramiko.config-pysrc.html
index d832929..2af6b96 100644
--- a/docs/paramiko.config-pysrc.html
+++ b/docs/paramiko.config-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.config-module.html" onclick="show_private();">Module paramiko.config</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{SSHConfig}.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -82,28 +82,28 @@
<a name="SSHConfig"></a><div id="SSHConfig-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="SSHConfig-toggle" onclick="return toggle('SSHConfig');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.config.SSHConfig-class.html">SSHConfig</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SSHConfig-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SSHConfig-expanded"><a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"> Representation of config information as stored in the format used by</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> OpenSSH. Queries can be made via L{lookup}. The format is described in</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> OpenSSH's C{ssh_config} man page. This class is provided primarily as a</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> convenience to posix users (since the OpenSSH format is a de-facto </tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> OpenSSH. Queries can be made via L{lookup}. The format is described in</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> OpenSSH's C{ssh_config} man page. This class is provided primarily as a</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> convenience to posix users (since the OpenSSH format is a de-facto</tt> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> standard on posix) but should work fine on Windows too.</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
<a name="SSHConfig.__init__"></a><div id="SSHConfig.__init__-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="SSHConfig.__init__-toggle" onclick="return toggle('SSHConfig.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.config.SSHConfig-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SSHConfig.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHConfig.__init__-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> Create a new OpenSSH config object.</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">{</tt> <tt class="py-string">'host'</tt><tt class="py-op">:</tt> <tt class="py-string">'*'</tt> <tt class="py-op">}</tt> <tt class="py-op">]</tt> </tt>
-</div><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
<a name="SSHConfig.parse"></a><div id="SSHConfig.parse-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="SSHConfig.parse-toggle" onclick="return toggle('SSHConfig.parse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.config.SSHConfig-class.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file_obj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SSHConfig.parse-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHConfig.parse-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> Read an OpenSSH config from the given file object.</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> @param file_obj: a file-like object to read the config file from</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> @type file_obj: file</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt id="link-0" class="py-name" targets="Module paramiko.config=paramiko.config-module.html"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-0', 'config', 'link-0');">config</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">configs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_obj</tt><tt class="py-op">:</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">line</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'#'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -113,7 +113,7 @@
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment"># find first whitespace, and split there</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isspace</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -122,44 +122,49 @@
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'host'</tt><tt class="py-op">:</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-comment"># do we have a pre-existing host config to append to?</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">matches</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt id="link-1" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-1', 'config', 'link-0');">config</a></tt> <tt class="py-op">=</tt> <tt class="py-name">matches</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-2" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-2', 'config', 'link-0');">config</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">'host'</tt><tt class="py-op">:</tt> <tt class="py-name">value</tt> <tt class="py-op">}</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-3" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-3', 'config', 'link-0');">config</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt id="link-4" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-4', 'config', 'link-0');">config</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
-</div><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
-<a name="SSHConfig.lookup"></a><div id="SSHConfig.lookup-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="SSHConfig.lookup-toggle" onclick="return toggle('SSHConfig.lookup');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.config.SSHConfig-class.html#lookup">lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SSHConfig.lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHConfig.lookup-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> Return a dict of config options for a given hostname.</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> The host-matching rules of OpenSSH's C{ssh_config} man page are used,</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> which means that all configuration options from matching host</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> specifications are merged, with more specific hostmasks taking</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> precedence. In other words, if C{"Port"} is set under C{"Host *"}</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> and also C{"Host *.example.com"}, and the lookup is for</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> C{"ssh.example.com"}, then the port entry for C{"Host *.example.com"}</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> will win out.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> The keys in the returned dict are all normalized to lowercase (look for</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> C{"port"}, not C{"Port"}. No other processing is done to the keys or</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> values.</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname to lookup</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-keyword">if</tt> <tt class="py-name">fnmatch</tt><tt class="py-op">.</tt><tt class="py-name">fnmatch</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-comment"># sort in order of shortest match (usually '*') to longest</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">y</tt><tt class="py-op">:</tt> <tt class="py-name">cmp</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">matches</tt><tt class="py-op">:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div></div><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">configs</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-comment"># the value may be multiple hosts, space-delimited</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">host</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment"># do we have a pre-existing host config to append to?</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">c</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">host</tt><tt class="py-op">]</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">matches</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">configs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">matches</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt id="link-0" class="py-name" targets="Module paramiko.config=paramiko.config-module.html"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-0', 'config', 'link-0');">config</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">'host'</tt><tt class="py-op">:</tt> <tt class="py-name">host</tt> <tt class="py-op">}</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-1" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-1', 'config', 'link-0');">config</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">configs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-2" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-2', 'config', 'link-0');">config</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-3" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-3', 'config', 'link-0');">config</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">configs</tt><tt class="py-op">:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt id="link-4" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-4', 'config', 'link-0');">config</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
+<a name="SSHConfig.lookup"></a><div id="SSHConfig.lookup-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="SSHConfig.lookup-toggle" onclick="return toggle('SSHConfig.lookup');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.config.SSHConfig-class.html#lookup">lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SSHConfig.lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SSHConfig.lookup-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> Return a dict of config options for a given hostname.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> The host-matching rules of OpenSSH's C{ssh_config} man page are used,</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> which means that all configuration options from matching host</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> specifications are merged, with more specific hostmasks taking</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> precedence. In other words, if C{"Port"} is set under C{"Host *"}</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> and also C{"Host *.example.com"}, and the lookup is for</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> C{"ssh.example.com"}, then the port entry for C{"Host *.example.com"}</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> will win out.</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> The keys in the returned dict are all normalized to lowercase (look for</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> C{"port"}, not C{"Port"}. No other processing is done to the keys or</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> values.</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname to lookup</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-keyword">if</tt> <tt class="py-name">fnmatch</tt><tt class="py-op">.</tt><tt class="py-name">fnmatch</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-comment"># sort in order of shortest match (usually '*') to longest</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">matches</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">y</tt><tt class="py-op">:</tt> <tt class="py-name">cmp</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">matches</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt class="py-string">'host'</tt><tt class="py-op">]</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div></div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -192,7 +197,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:32 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.dsskey-module.html b/docs/paramiko.dsskey-module.html
index 60963b7..1c76d4b 100644
--- a/docs/paramiko.dsskey-module.html
+++ b/docs/paramiko.dsskey-module.html
@@ -415,6 +415,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -502,7 +509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.dsskey-pysrc.html b/docs/paramiko.dsskey-pysrc.html
index 1346b99..6a254ac 100644
--- a/docs/paramiko.dsskey-pysrc.html
+++ b/docs/paramiko.dsskey-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.dsskey-module.html" onclick="show_private();">Module paramiko.dsskey</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{DSSKey}</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -140,7 +140,7 @@ paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link
<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> <tt class="py-op">*</tt> <tt class="py-number">37</tt> <tt class="py-op">+</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">)</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> <tt class="py-op">*</tt> <tt class="py-number">37</tt> <tt class="py-op">+</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># h might be a long by now...</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">)</tt> </tt>
</div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
<a name="DSSKey.get_name"></a><div id="DSSKey.get_name-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="DSSKey.get_name-toggle" onclick="return toggle('DSSKey.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#get_name">get_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DSSKey.get_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.get_name-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'ssh-dss'</tt> </tt>
@@ -152,55 +152,55 @@ paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link
</div><div id="DSSKey.can_sign-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.can_sign-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
<a name="DSSKey.sign_ssh_data"></a><div id="DSSKey.sign_ssh_data-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="DSSKey.sign_ssh_data-toggle" onclick="return toggle('DSSKey.sign_ssh_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#sign_ssh_data">sign_ssh_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">rpool</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DSSKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.sign_ssh_data-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="DSSKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.sign_ssh_data-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-34', 'new', 'link-34');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">dss</tt> <tt class="py-op">=</tt> <tt class="py-name">DSA</tt><tt class="py-op">.</tt><tt class="py-name">construct</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-comment"># generate a suitable k</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">qsize</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-34', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-35', 'deflate_long', 'link-35');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">qsize</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-35', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-36', 'deflate_long', 'link-36');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-36', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-37', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">rpool</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-38', 'get_bytes', 'link-38');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">qsize</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-37', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-38', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">rpool</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-39', 'get_bytes', 'link-39');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">qsize</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">k</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">k</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">dss</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt id="link-39" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-39', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-40', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-41', 'Message', 'link-9');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-42', 'add_string', 'link-28');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-dss'</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">dss</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-40', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-41', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-42', 'Message', 'link-9');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-43', 'add_string', 'link-28');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-dss'</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># apparently, in rare cases, r or s may be shorter than 20 bytes!</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">rstr</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-43', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-44', 'deflate_long', 'link-35');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">sstr</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-45', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-46', 'deflate_long', 'link-35');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">rstr</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-44', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-45', 'deflate_long', 'link-36');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">sstr</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-46', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-47', 'deflate_long', 'link-36');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">rstr</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">rstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">20</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">rstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">rstr</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">sstr</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">sstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">20</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">sstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">sstr</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-47', 'add_string', 'link-28');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">rstr</tt> <tt class="py-op">+</tt> <tt class="py-name">sstr</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-48', 'add_string', 'link-28');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">rstr</tt> <tt class="py-op">+</tt> <tt class="py-name">sstr</tt><tt class="py-op">)</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
<a name="DSSKey.verify_ssh_sig"></a><div id="DSSKey.verify_ssh_sig-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="DSSKey.verify_ssh_sig-toggle" onclick="return toggle('DSSKey.verify_ssh_sig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#verify_ssh_sig">verify_ssh_sig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DSSKey.verify_ssh_sig-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.verify_ssh_sig-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">40</tt><tt class="py-op">:</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-comment"># spies.com bug: signature has no header</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-48', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-49', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">!=</tt> <tt class="py-string">'ssh-dss'</tt><tt class="py-op">:</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-49', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-50', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-comment"># pull out (r, s) which are NOT encoded as mpints</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">sigR</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-50', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-51', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">sigS</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-52', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-53', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">[</tt><tt class="py-number">20</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">sigM</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-54', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-55', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">sigR</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-51', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-52', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">sigS</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-53', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-54', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">[</tt><tt class="py-number">20</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">sigM</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-55', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-56', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-57', 'new', 'link-34');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">dss</tt> <tt class="py-op">=</tt> <tt class="py-name">DSA</tt><tt class="py-op">.</tt><tt class="py-name">construct</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">dss</tt><tt class="py-op">.</tt><tt class="py-name">verify</tt><tt class="py-op">(</tt><tt class="py-name">sigM</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">sigR</tt><tt class="py-op">,</tt> <tt class="py-name">sigS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
<a name="DSSKey._encode_key"></a><div id="DSSKey._encode_key-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="DSSKey._encode_key-toggle" onclick="return toggle('DSSKey._encode_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#_encode_key">_encode_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DSSKey._encode_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey._encode_key-expanded"><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-56', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not enough key information'</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-58" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-58', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not enough key information'</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> <tt class="py-op">]</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-57', 'BER', 'link-12');">BER</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-58', 'encode', 'link-58');">encode</a></tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-59" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-59', 'BERException', 'link-13');">BERException</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-60" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-60', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to create ber encoding of key'</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-59', 'BER', 'link-12');">BER</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-60', 'encode', 'link-60');">encode</a></tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-61" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-61', 'BERException', 'link-13');">BERException</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-62', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to create ber encoding of key'</tt><tt class="py-op">)</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
</div><a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> </tt>
<a name="DSSKey.write_private_key_file"></a><div id="DSSKey.write_private_key_file-def"><a name="L145"></a><tt class="py-lineno">145</tt> <a class="py-toggle" href="#" id="DSSKey.write_private_key_file-toggle" onclick="return toggle('DSSKey.write_private_key_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#write_private_key_file">write_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -222,7 +222,7 @@ paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick
<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> @return: new private key</tt> </tt>
<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{DSSKey}</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt id="link-61" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt id="link-63" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -242,9 +242,9 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-61', 'randpool', 'link-61');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-62', 'stir', 'link-62');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">dsa</tt> <tt class="py-op">=</tt> <tt class="py-name">DSA</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Static Method paramiko.DSSKey.generate()=paramiko.DSSKey-class.html#generate,Static Method paramiko.RSAKey.generate()=paramiko.RSAKey-class.html#generate"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-63', 'generate', 'link-63');">generate</a></tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-63', 'randpool', 'link-63');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-64', 'stir', 'link-64');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">dsa</tt> <tt class="py-op">=</tt> <tt class="py-name">DSA</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Static Method paramiko.DSSKey.generate()=paramiko.DSSKey-class.html#generate,Static Method paramiko.RSAKey.generate()=paramiko.RSAKey-class.html#generate"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-65', 'generate', 'link-65');">generate</a></tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -264,18 +264,18 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-64', 'randpool', 'link-61');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-65', 'get_bytes', 'link-38');">get_bytes</a></tt><tt class="py-op">,</tt> <tt class="py-name">progress_func</tt><tt class="py-op">)</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-66" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-66', 'DSSKey', 'link-66');">DSSKey</a></tt><tt class="py-op">(</tt><tt class="py-name">vals</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-66', 'randpool', 'link-63');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-67', 'get_bytes', 'link-39');">get_bytes</a></tt><tt class="py-op">,</tt> <tt class="py-name">progress_func</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-68', 'DSSKey', 'link-68');">DSSKey</a></tt><tt class="py-op">(</tt><tt class="py-name">vals</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">dsa</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt id="link-67" class="py-name"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-67', 'generate', 'link-63');">generate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-68', 'generate', 'link-63');">generate</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-69', 'generate', 'link-65');">generate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-70', 'generate', 'link-65');">generate</a></tt><tt class="py-op">)</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> </tt>
<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> </tt>
<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
<a name="DSSKey._from_private_key_file"></a><div id="DSSKey._from_private_key_file-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="DSSKey._from_private_key_file-toggle" onclick="return toggle('DSSKey._from_private_key_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#_from_private_key_file">_from_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DSSKey._from_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey._from_private_key_file-expanded"><a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_private_key_file</tt><tt class="py-op">(</tt><tt class="py-string">'DSA'</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
@@ -287,19 +287,19 @@ paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link
</div><a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> </tt>
<a name="DSSKey._decode_key"></a><div id="DSSKey._decode_key-def"><a name="L183"></a><tt class="py-lineno">183</tt> <a class="py-toggle" href="#" id="DSSKey._decode_key-toggle" onclick="return toggle('DSSKey._decode_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#_decode_key">_decode_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DSSKey._decode_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey._decode_key-expanded"><a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-comment"># private key file contains:</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># DSAPrivateKey = { version = 0, p, q, g, y, x }</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-69', 'BER', 'link-12');">BER</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-70', 'decode', 'link-70');">decode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-71" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-71', 'BERException', 'link-13');">BERException</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-72" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-72', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to parse key file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-comment"># DSAPrivateKey = { version = 0, p, q, g, y, x }</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-71', 'BER', 'link-12');">BER</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-72', 'decode', 'link-72');">decode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-73" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-73', 'BERException', 'link-13');">BERException</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-74" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-74', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to parse key file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">6</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-73" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-73', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'not a valid DSA private key file (bad ber encoding)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-75" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-75', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'not a valid DSA private key file (bad ber encoding)'</tt><tt class="py-op">)</tt> </tt>
<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">]</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-74', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-75', 'bit_length', 'link-26');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-76', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-77', 'bit_length', 'link-26');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -333,7 +333,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:34 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.file-module.html b/docs/paramiko.file-module.html
index cd4f9e7..63b95e6 100644
--- a/docs/paramiko.file-module.html
+++ b/docs/paramiko.file-module.html
@@ -56,6 +56,22 @@
<h1 class="epydoc">Module file</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span></p>
<p>BufferedFile.</p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -82,7 +98,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.file-pysrc.html b/docs/paramiko.file-pysrc.html
index 0679425..2faa07f 100644
--- a/docs/paramiko.file-pysrc.html
+++ b/docs/paramiko.file-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.file-module.html" onclick="show_private();">Module paramiko.file</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">BufferedFile.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -108,11 +108,11 @@
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_at_trailing_cr</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-comment"># pos - position within the file, according to the user</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># realpos - position according the OS</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># (these may be different because we buffer for line reading)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-comment"># realpos - position according the OS</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># (these may be different because we buffer for line reading)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment"># size only matters for seekable files</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
</div><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
<a name="BufferedFile.__del__"></a><div id="BufferedFile.__del__-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="BufferedFile.__del__-toggle" onclick="return toggle('BufferedFile.__del__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#__del__">__del__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BufferedFile.__del__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.__del__-expanded"><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
@@ -193,7 +193,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'File is not open for reading'</tt><tt class="py-op">)</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-comment"># go for broke</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
@@ -248,7 +248,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-comment"># it's almost silly how complex this function is.</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'File is closed'</tt><tt class="py-op">)</tt> </tt>
<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.BufferedFile.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-18', 'FLAG_READ', 'link-4');">FLAG_READ</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'File not open for reading'</tt><tt class="py-op">)</tt> </tt>
@@ -256,19 +256,19 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_at_trailing_cr</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-19', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-comment"># edge case: the newline may be '\r\n' and we may have read</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># only the first '\r' last time.</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'\n'</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-comment"># only the first '\r' last time.</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'\n'</tt><tt class="py-op">:</tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_record_newline</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_record_newline</tt><tt class="py-op">(</tt><tt class="py-string">'\r'</tt><tt class="py-op">)</tt> </tt>
<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_at_trailing_cr</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-comment"># check size before looking for a linefeed, in case we already have</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># enough.</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-comment"># enough.</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-comment"># truncate line and return</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">size</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">size</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt> </tt>
<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">line</tt> </tt>
@@ -288,7 +288,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">+=</tt> <tt class="py-name">new_data</tt> </tt>
<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">new_data</tt><tt class="py-op">)</tt> </tt>
<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment"># find the newline</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-21', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt><tt class="py-op">:</tt> </tt>
<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">rpos</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'\r'</tt><tt class="py-op">)</tt> </tt>
<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rpos</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">rpos</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">pos</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">pos</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -301,8 +301,8 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">pos</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> </tt>
<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">lf</tt> <tt class="py-op">==</tt> <tt class="py-string">'\r'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-comment"># we could read the line up to a '\r' and there could still be a</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># '\n' following that we read next time. note that and eat it.</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_at_trailing_cr</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-comment"># '\n' following that we read next time. note that and eat it.</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_at_trailing_cr</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_record_newline</tt><tt class="py-op">(</tt><tt class="py-name">lf</tt><tt class="py-op">)</tt> </tt>
<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
@@ -384,7 +384,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-25', 'write', 'link-25');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-26', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt><tt class="py-op">:</tt> </tt>
<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-comment"># only scan the new data for linefeed, to avoid wasting time.</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">last_newline_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">last_newline_pos</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">last_newline_pos</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">wbuf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wbuffer</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">last_newline_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">wbuf</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
@@ -394,8 +394,8 @@ paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('lin
paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-27', 'write', 'link-25');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">wbuf</tt><tt class="py-op">[</tt><tt class="py-name">last_newline_pos</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-comment"># even if we're line buffering, if the buffer has grown past the</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># buffer size, force a flush.</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wbuffer</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method paramiko.BufferedFile.tell()=paramiko.BufferedFile-class.html#tell"><a title="paramiko.BufferedFile.tell" class="py-name" href="#" onclick="return doclink('link-28', 'tell', 'link-28');">tell</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-comment"># buffer size, force a flush.</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wbuffer</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method paramiko.BufferedFile.tell()=paramiko.BufferedFile-class.html#tell"><a title="paramiko.BufferedFile.tell" class="py-name" href="#" onclick="return doclink('link-28', 'tell', 'link-28');">tell</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt><tt class="py-op">:</tt> </tt>
<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-29', 'flush', 'link-13');">flush</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
</div><a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> </tt>
@@ -426,7 +426,7 @@ paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> </tt>
<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> </tt>
<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-comment">### overrides...</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> </tt>
<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt>
<a name="BufferedFile._read"></a><div id="BufferedFile._read-def"><a name="L361"></a><tt class="py-lineno">361</tt> <a class="py-toggle" href="#" id="BufferedFile._read-toggle" onclick="return toggle('BufferedFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BufferedFile._read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._read-expanded"><a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -456,30 +456,30 @@ paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> </tt>
<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> </tt>
<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> </tt>
<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> </tt>
<a name="BufferedFile._set_mode"></a><div id="BufferedFile._set_mode-def"><a name="L391"></a><tt class="py-lineno">391</tt> <a class="py-toggle" href="#" id="BufferedFile._set_mode-toggle" onclick="return toggle('BufferedFile._set_mode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#_set_mode">_set_mode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BufferedFile._set_mode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._set_mode-expanded"><a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"><tt class="py-docstring"> Subclasses call this method to initialize the BufferedFile.</tt> </tt>
<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-comment"># set bufsize in any event, because it's used for readline().</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="paramiko.BufferedFile._DEFAULT_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-31', '_DEFAULT_BUFSIZE', 'link-0');">_DEFAULT_BUFSIZE</a></tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="paramiko.BufferedFile._DEFAULT_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-31', '_DEFAULT_BUFSIZE', 'link-0');">_DEFAULT_BUFSIZE</a></tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bufsize</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-comment"># do no buffering by default, because otherwise writes will get</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># buffered in a way that will probably confuse people.</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-comment"># buffered in a way that will probably confuse people.</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bufsize</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-comment"># apparently, line buffering only affects writes. reads are only</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># buffered if you call readline (directly or indirectly: iterating</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># over a file will indirectly call readline).</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-32', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> <tt class="py-op">|</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-33', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-comment"># buffered if you call readline (directly or indirectly: iterating</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-comment"># over a file will indirectly call readline).</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-32', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> <tt class="py-op">|</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-33', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt> </tt>
<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">bufsize</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">bufsize</tt> </tt>
<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-34', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> </tt>
<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;=</tt> <tt class="py-op">~</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-35', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt> </tt>
<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">bufsize</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-comment"># unbuffered</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;=</tt> <tt class="py-op">~</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-36', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> <tt class="py-op">|</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-37', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;=</tt> <tt class="py-op">~</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-36', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> <tt class="py-op">|</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-37', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt><tt class="py-op">)</tt> </tt>
<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> </tt>
<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'r'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'+'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.BufferedFile.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-38', 'FLAG_READ', 'link-4');">FLAG_READ</a></tt> </tt>
@@ -494,14 +494,14 @@ paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('lin
<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'U'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-43', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt> </tt>
<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-comment"># built-in file objects have this attribute to store which kinds of</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># line terminations they've seen:</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># &lt;http://www.python.org/doc/current/lib/built-in-funcs.html&gt;</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-comment"># line terminations they've seen:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-comment"># &lt;http://www.python.org/doc/current/lib/built-in-funcs.html&gt;</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
<a name="BufferedFile._write_all"></a><div id="BufferedFile._write_all-def"><a name="L431"></a><tt class="py-lineno">431</tt> <a class="py-toggle" href="#" id="BufferedFile._write_all-toggle" onclick="return toggle('BufferedFile._write_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#_write_all">_write_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BufferedFile._write_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._write_all-expanded"><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-comment"># the underlying stream may be something that does partial writes (like</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># a socket).</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-comment"># a socket).</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_write</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">count</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.BufferedFile.FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-44', 'FLAG_APPEND', 'link-6');">FLAG_APPEND</a></tt><tt class="py-op">:</tt> </tt>
@@ -514,9 +514,9 @@ paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> </tt>
<a name="BufferedFile._record_newline"></a><div id="BufferedFile._record_newline-def"><a name="L445"></a><tt class="py-lineno">445</tt> <a class="py-toggle" href="#" id="BufferedFile._record_newline-toggle" onclick="return toggle('BufferedFile._record_newline');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#_record_newline">_record_newline</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">newline</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BufferedFile._record_newline-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._record_newline-expanded"><a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-comment"># silliness about tracking what kinds of newlines we've seen.</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># i don't understand why it can be None, a string, or a tuple, instead</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># of just always being a tuple, but we'll emulate that behavior anyway.</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-45', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-comment"># i don't understand why it can be None, a string, or a tuple, instead</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-comment"># of just always being a tuple, but we'll emulate that behavior anyway.</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-45', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</tt> <tt class="py-op">=</tt> <tt class="py-name">newline</tt> </tt>
@@ -557,7 +557,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:32 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.hostkeys-module.html b/docs/paramiko.hostkeys-module.html
index 397bafa..98c7063 100644
--- a/docs/paramiko.hostkeys-module.html
+++ b/docs/paramiko.hostkeys-module.html
@@ -433,6 +433,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -520,7 +527,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:26 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.hostkeys-pysrc.html b/docs/paramiko.hostkeys-pysrc.html
index 4bf0c59..06a8155 100644
--- a/docs/paramiko.hostkeys-pysrc.html
+++ b/docs/paramiko.hostkeys-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.hostkeys-module.html" onclick="show_private();">Module paramiko.hostkeys</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2006-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{HostKeys}</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -89,7 +89,7 @@
</div><div id="HostKeyEntry-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HostKeyEntry-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> Representation of a line in an OpenSSH-style "known hosts" file.</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
<a name="HostKeyEntry.__init__"></a><div id="HostKeyEntry.__init__-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="HostKeyEntry.__init__-toggle" onclick="return toggle('HostKeyEntry.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostnames</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="HostKeyEntry.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.__init__-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">valid</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">hostnames</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt> <tt class="py-op">=</tt> <tt class="py-name">hostnames</tt> </tt>
@@ -109,116 +109,117 @@
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> @type line: str</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">fields</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-comment"># Bad number of fields</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">names</tt><tt class="py-op">,</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">fields</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt class="py-name">names</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-comment"># Decide what kind of key we're looking at and create an object</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># to hold it accordingly.</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">keytype</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-8', 'RSAKey', 'link-7');">RSAKey</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">keytype</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssh-dss'</tt><tt class="py-op">:</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-9', 'DSSKey', 'link-4');">DSSKey</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Class Method paramiko.hostkeys.HostKeyEntry.from_line()=paramiko.hostkeys.HostKeyEntry-class.html#from_line"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-10', 'from_line', 'link-10');">from_line</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-11', 'from_line', 'link-10');">from_line</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
-<a name="HostKeyEntry.to_line"></a><div id="HostKeyEntry.to_line-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="HostKeyEntry.to_line-toggle" onclick="return toggle('HostKeyEntry.to_line');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#to_line">to_line</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeyEntry.to_line-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.to_line-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string in OpenSSH known_hosts file format, or None if</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> the object is not in a valid state. A trailing newline is</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> included.</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">valid</tt><tt class="py-op">:</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s %s %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">fields</tt> <tt class="py-op">=</tt> <tt class="py-name">fields</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">names</tt><tt class="py-op">,</tt> <tt class="py-name">keytype</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">fields</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt class="py-name">names</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-comment"># Decide what kind of key we're looking at and create an object</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-comment"># to hold it accordingly.</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">keytype</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-8', 'RSAKey', 'link-7');">RSAKey</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">keytype</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssh-dss'</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-9', 'DSSKey', 'link-4');">DSSKey</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Class Method paramiko.hostkeys.HostKeyEntry.from_line()=paramiko.hostkeys.HostKeyEntry-class.html#from_line"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-10', 'from_line', 'link-10');">from_line</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-11', 'from_line', 'link-10');">from_line</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="HostKeyEntry.to_line"></a><div id="HostKeyEntry.to_line-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="HostKeyEntry.to_line-toggle" onclick="return toggle('HostKeyEntry.to_line');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#to_line">to_line</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeyEntry.to_line-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.to_line-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string in OpenSSH known_hosts file format, or None if</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> the object is not in a valid state. A trailing newline is</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> included.</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">valid</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s %s %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-12', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.PKey.get_base64()=paramiko.PKey-class.html#get_base64"><a title="paramiko.PKey.get_base64" class="py-name" href="#" onclick="return doclink('link-13', 'get_base64', 'link-13');">get_base64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
-<a name="HostKeyEntry.__repr__"></a><div id="HostKeyEntry.__repr__-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="HostKeyEntry.__repr__-toggle" onclick="return toggle('HostKeyEntry.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeyEntry.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.__repr__-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HostKeyEntry %r: %r&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
-<a name="HostKeys"></a><div id="HostKeys-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="HostKeys-toggle" onclick="return toggle('HostKeys');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html">HostKeys</a> <tt class="py-op">(</tt><tt class="py-base-class">UserDict</tt><tt class="py-op">.</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HostKeys-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> Representation of an openssh-style "known hosts" file. Host keys can be</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> read from one or more files, and then individual hosts can be looked up to</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> verify server keys during SSH negotiation.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> A HostKeys object can be treated like a dict; any dict lookup is equivalent</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> to calling L{lookup}.</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.3</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.__init__"></a><div id="HostKeys.__init__-def"><a name="L102"></a><tt class="py-lineno">102</tt> <a class="py-toggle" href="#" id="HostKeys.__init__-toggle" onclick="return toggle('HostKeys.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__init__-expanded"><a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> Create a new HostKeys object, optionally loading keys from an openssh</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> style host-key file.</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: filename to load host keys from, or C{None}</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-comment"># emulate a dict of { hostname: { keytype: PKey } }</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method paramiko.HostKeys.load()=paramiko.HostKeys-class.html#load"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-14', 'load', 'link-14');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.add"></a><div id="HostKeys.add-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="HostKeys.add-toggle" onclick="return toggle('HostKeys.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">keytype</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.add-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.add-expanded"><a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> Add a host key entry to the table. Any existing entry for a</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> C{(hostname, keytype)} pair will be replaced.</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname (or IP) to add</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> @param keytype: key type (C{"ssh-rsa"} or C{"ssh-dss"})</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> @type keytype: str</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the key to add</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey}</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.AgentKey.get_name
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.PKey.get_base64()=paramiko.PKey-class.html#get_base64"><a title="paramiko.PKey.get_base64" class="py-name" href="#" onclick="return doclink('link-13', 'get_base64', 'link-13');">get_base64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
+<a name="HostKeyEntry.__repr__"></a><div id="HostKeyEntry.__repr__-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="HostKeyEntry.__repr__-toggle" onclick="return toggle('HostKeyEntry.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeyEntry.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.__repr__-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HostKeyEntry %r: %r&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
+<a name="HostKeys"></a><div id="HostKeys-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="HostKeys-toggle" onclick="return toggle('HostKeys');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html">HostKeys</a> <tt class="py-op">(</tt><tt class="py-base-class">UserDict</tt><tt class="py-op">.</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HostKeys-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> Representation of an openssh-style "known hosts" file. Host keys can be</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> read from one or more files, and then individual hosts can be looked up to</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> verify server keys during SSH negotiation.</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> A HostKeys object can be treated like a dict; any dict lookup is equivalent</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> to calling L{lookup}.</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.3</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.__init__"></a><div id="HostKeys.__init__-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="HostKeys.__init__-toggle" onclick="return toggle('HostKeys.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__init__-expanded"><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> Create a new HostKeys object, optionally loading keys from an openssh</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> style host-key file.</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: filename to load host keys from, or C{None}</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-comment"># emulate a dict of { hostname: { keytype: PKey } }</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method paramiko.HostKeys.load()=paramiko.HostKeys-class.html#load"><a title="paramiko.HostKeys.load" class="py-name" href="#" onclick="return doclink('link-14', 'load', 'link-14');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.add"></a><div id="HostKeys.add-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="HostKeys.add-toggle" onclick="return toggle('HostKeys.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">keytype</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.add-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.add-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> Add a host key entry to the table. Any existing entry for a</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> C{(hostname, keytype)} pair will be replaced.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname (or IP) to add</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> @param keytype: key type (C{"ssh-rsa"} or C{"ssh-dss"})</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> @type keytype: str</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the key to add</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey}</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-15', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">keytype</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name" targets="Class paramiko.hostkeys.HostKeyEntry=paramiko.hostkeys.HostKeyEntry-class.html"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-16', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.load"></a><div id="HostKeys.load-def"><a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="HostKeys.load-toggle" onclick="return toggle('HostKeys.load');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#load">load</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.load-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.load-expanded"><a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> Read a file of known SSH host keys, in the format used by openssh.</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> This type of file unfortunately doesn't exist on Windows, but on</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> posix, it will usually be stored in</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> C{os.path.expanduser("~/.ssh/known_hosts")}.</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> If this method is called multiple times, the host keys are merged,</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> not cleared. So multiple calls to C{load} will just call L{add},</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> replacing any existing entries and adding new ones.</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to read host keys from</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error reading the file</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-17', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'#'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-18', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-19', 'from_line', 'link-10');">from_line</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name" targets="Class paramiko.hostkeys.HostKeyEntry=paramiko.hostkeys.HostKeyEntry-class.html"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-16', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.load"></a><div id="HostKeys.load-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="HostKeys.load-toggle" onclick="return toggle('HostKeys.load');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#load">load</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.load-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.load-expanded"><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> Read a file of known SSH host keys, in the format used by openssh.</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> This type of file unfortunately doesn't exist on Windows, but on</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> posix, it will usually be stored in</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> C{os.path.expanduser("~/.ssh/known_hosts")}.</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> If this method is called multiple times, the host keys are merged,</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> not cleared. So multiple calls to C{load} will just call L{add},</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> replacing any existing entries and adding new ones.</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to read host keys from</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error reading the file</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-17', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'#'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-18', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry.from_line" class="py-name" href="#" onclick="return doclink('link-19', 'from_line', 'link-10');">from_line</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -230,28 +231,28 @@ paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-20', 'close', 'link-20');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.save"></a><div id="HostKeys.save-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="HostKeys.save-toggle" onclick="return toggle('HostKeys.save');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.save-expanded"><a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> Save host keys into a file, in the format used by openssh. The order of</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> keys in the file will be preserved when possible (if these keys were</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> loaded from a file originally). The single exception is that combined</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> lines will be split into individual key lines, which is arguably a bug.</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to write</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error writing the file</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6.1</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-21', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method paramiko.hostkeys.HostKeyEntry.to_line()=paramiko.hostkeys.HostKeyEntry-class.html#to_line"><a title="paramiko.hostkeys.HostKeyEntry.to_line" class="py-name" href="#" onclick="return doclink('link-22', 'to_line', 'link-22');">to_line</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
+</div><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.save"></a><div id="HostKeys.save-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="HostKeys.save-toggle" onclick="return toggle('HostKeys.save');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.save-expanded"><a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> Save host keys into a file, in the format used by openssh. The order of</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> keys in the file will be preserved when possible (if these keys were</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> loaded from a file originally). The single exception is that combined</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> lines will be split into individual key lines, which is arguably a bug.</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to write</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error writing the file</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6.1</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-21', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method paramiko.hostkeys.HostKeyEntry.to_line()=paramiko.hostkeys.HostKeyEntry-class.html#to_line"><a title="paramiko.hostkeys.HostKeyEntry.to_line" class="py-name" href="#" onclick="return doclink('link-22', 'to_line', 'link-22');">to_line</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-23', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.Agent.close
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -263,157 +264,157 @@ paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-24', 'close', 'link-20');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.lookup"></a><div id="HostKeys.lookup-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="HostKeys.lookup-toggle" onclick="return toggle('HostKeys.lookup');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#lookup">lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.lookup-expanded"><a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> Find a hostkey entry for a given hostname or IP. If no entry is found,</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> C{None} is returned. Otherwise a dictionary of keytype to key is</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> returned. The keytype will be either C{"ssh-rsa"} or C{"ssh-dss"}.</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname (or IP) to lookup</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"><tt class="py-docstring"> @return: keys associated with this host (or C{None})</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dict(str, L{PKey})</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">SubDict</tt> <tt class="py-op">(</tt><tt class="py-base-class">UserDict</tt><tt class="py-op">.</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">entries</tt><tt class="py-op">,</tt> <tt class="py-param">hostkeys</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-name">entries</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostkeys</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name" targets="Module paramiko.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-25', 'hostkeys', 'link-25');">hostkeys</a></tt> </tt>
-</div><a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__getitem__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.AgentKey.get_name
+</div><a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.lookup"></a><div id="HostKeys.lookup-def"><a name="L181"></a><tt class="py-lineno">181</tt> <a class="py-toggle" href="#" id="HostKeys.lookup-toggle" onclick="return toggle('HostKeys.lookup');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#lookup">lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.lookup-expanded"><a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> Find a hostkey entry for a given hostname or IP. If no entry is found,</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> C{None} is returned. Otherwise a dictionary of keytype to key is</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> returned. The keytype will be either C{"ssh-rsa"} or C{"ssh-dss"}.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname (or IP) to lookup</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> @return: keys associated with this host (or C{None})</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dict(str, L{PKey})</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">SubDict</tt> <tt class="py-op">(</tt><tt class="py-base-class">UserDict</tt><tt class="py-op">.</tt><tt class="py-base-class">DictMixin</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">entries</tt><tt class="py-op">,</tt> <tt class="py-param">hostkeys</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-name">entries</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostkeys</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name" targets="Module paramiko.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-25', 'hostkeys', 'link-25');">hostkeys</a></tt> </tt>
+</div><a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__getitem__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-26', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__setitem__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.AgentKey.get_name
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__setitem__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-27', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment"># replace</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-comment"># add a new one</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-28', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostkeys</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">keys</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.AgentKey.get_name
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># replace</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-comment"># add a new one</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-28', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_hostkeys</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">keys</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-29', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt> </tt>
-</div></div><a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">h</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'|1|'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Static Method paramiko.HostKeys.hash_host()=paramiko.HostKeys-class.html#hash_host"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-30', 'hash_host', 'link-30');">hash_host</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">h</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">h</tt> <tt class="py-op">==</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entries</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">SubDict</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">entries</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.check"></a><div id="HostKeys.check-def"><a name="L229"></a><tt class="py-lineno">229</tt> <a class="py-toggle" href="#" id="HostKeys.check-toggle" onclick="return toggle('HostKeys.check');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#check">check</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.check-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.check-expanded"><a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> Return True if the given key is associated with the given hostname</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> in this dictionary.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: hostname (or IP) of the SSH server</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the key to check</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey}</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the key is associated with the hostname; C{False}</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> if not</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method paramiko.HostKeys.lookup()=paramiko.HostKeys-class.html#lookup,Method paramiko.SSHConfig.lookup()=paramiko.SSHConfig-class.html#lookup"><a title="paramiko.HostKeys.lookup
+</div></div><a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">h</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'|1|'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Static Method paramiko.HostKeys.hash_host()=paramiko.HostKeys-class.html#hash_host"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-30', 'hash_host', 'link-30');">hash_host</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">h</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">h</tt> <tt class="py-op">==</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entries</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">SubDict</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">entries</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.check"></a><div id="HostKeys.check-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="HostKeys.check-toggle" onclick="return toggle('HostKeys.check');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#check">check</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.check-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.check-expanded"><a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> Return True if the given key is associated with the given hostname</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> in this dictionary.</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: hostname (or IP) of the SSH server</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the key to check</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey}</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the key is associated with the hostname; C{False}</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> if not</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method paramiko.HostKeys.lookup()=paramiko.HostKeys-class.html#lookup,Method paramiko.SSHConfig.lookup()=paramiko.SSHConfig-class.html#lookup"><a title="paramiko.HostKeys.lookup
paramiko.SSHConfig.lookup" class="py-name" href="#" onclick="return doclink('link-31', 'lookup', 'link-31');">lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-32', 'get', 'link-32');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-33', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">host_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.clear"></a><div id="HostKeys.clear-def"><a name="L250"></a><tt class="py-lineno">250</tt> <a class="py-toggle" href="#" id="HostKeys.clear-toggle" onclick="return toggle('HostKeys.clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#clear">clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.clear-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.clear-expanded"><a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> Remove all host keys from the dictionary.</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.__getitem__"></a><div id="HostKeys.__getitem__-def"><a name="L256"></a><tt class="py-lineno">256</tt> <a class="py-toggle" href="#" id="HostKeys.__getitem__-toggle" onclick="return toggle('HostKeys.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.__getitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__getitem__-expanded"><a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.HostKeys.lookup
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">host_key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.clear"></a><div id="HostKeys.clear-def"><a name="L251"></a><tt class="py-lineno">251</tt> <a class="py-toggle" href="#" id="HostKeys.clear-toggle" onclick="return toggle('HostKeys.clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#clear">clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.clear-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.clear-expanded"><a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> Remove all host keys from the dictionary.</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.__getitem__"></a><div id="HostKeys.__getitem__-def"><a name="L257"></a><tt class="py-lineno">257</tt> <a class="py-toggle" href="#" id="HostKeys.__getitem__-toggle" onclick="return toggle('HostKeys.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.__getitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__getitem__-expanded"><a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.HostKeys.lookup
paramiko.SSHConfig.lookup" class="py-name" href="#" onclick="return doclink('link-34', 'lookup', 'link-31');">lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ret</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.__setitem__"></a><div id="HostKeys.__setitem__-def"><a name="L262"></a><tt class="py-lineno">262</tt> <a class="py-toggle" href="#" id="HostKeys.__setitem__-toggle" onclick="return toggle('HostKeys.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.__setitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__setitem__-expanded"><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-comment"># don't use this please.</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entry</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-35', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key_type</tt> <tt class="py-keyword">in</tt> <tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-36', 'keys', 'link-36');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">found</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.AgentKey.get_name
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ret</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.__setitem__"></a><div id="HostKeys.__setitem__-def"><a name="L263"></a><tt class="py-lineno">263</tt> <a class="py-toggle" href="#" id="HostKeys.__setitem__-toggle" onclick="return toggle('HostKeys.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.__setitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.__setitem__-expanded"><a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-comment"># don't use this please.</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entry</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-35', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key_type</tt> <tt class="py-keyword">in</tt> <tt class="py-name">entry</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-36', 'keys', 'link-36');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">found</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-37', 'get_name', 'link-12');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">key_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-comment"># replace</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">entry</tt><tt class="py-op">[</tt><tt class="py-name">key_type</tt><tt class="py-op">]</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">found</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">found</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-38', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">entry</tt><tt class="py-op">[</tt><tt class="py-name">key_type</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.keys"></a><div id="HostKeys.keys-def"><a name="L277"></a><tt class="py-lineno">277</tt> <a class="py-toggle" href="#" id="HostKeys.keys-toggle" onclick="return toggle('HostKeys.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.keys-expanded"><a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-comment"># python 2.4 sets would be nice here.</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">h</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">h</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ret</tt><tt class="py-op">:</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.values"></a><div id="HostKeys.values-def"><a name="L286"></a><tt class="py-lineno">286</tt> <a class="py-toggle" href="#" id="HostKeys.values-toggle" onclick="return toggle('HostKeys.values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#values">values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.values-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.values-expanded"><a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-39', 'keys', 'link-36');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.HostKeys.lookup
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-comment"># replace</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">entry</tt><tt class="py-op">[</tt><tt class="py-name">key_type</tt><tt class="py-op">]</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">found</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">found</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="paramiko.hostkeys.HostKeyEntry" class="py-name" href="#" onclick="return doclink('link-38', 'HostKeyEntry', 'link-16');">HostKeyEntry</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">hostname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">entry</tt><tt class="py-op">[</tt><tt class="py-name">key_type</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.keys"></a><div id="HostKeys.keys-def"><a name="L278"></a><tt class="py-lineno">278</tt> <a class="py-toggle" href="#" id="HostKeys.keys-toggle" onclick="return toggle('HostKeys.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.keys-expanded"><a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-comment"># python 2.4 sets would be nice here.</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">h</tt> <tt class="py-keyword">in</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">hostnames</tt><tt class="py-op">:</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">h</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ret</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.values"></a><div id="HostKeys.values-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="HostKeys.values-toggle" onclick="return toggle('HostKeys.values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#values">values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.values-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.values-expanded"><a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-39', 'keys', 'link-36');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.HostKeys.lookup
paramiko.SSHConfig.lookup" class="py-name" href="#" onclick="return doclink('link-40', 'lookup', 'link-31');">lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> </tt>
-<a name="HostKeys.hash_host"></a><div id="HostKeys.hash_host-def"><a name="L292"></a><tt class="py-lineno">292</tt> <a class="py-toggle" href="#" id="HostKeys.hash_host-toggle" onclick="return toggle('HostKeys.hash_host');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#hash_host">hash_host</a><tt class="py-op">(</tt><tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostKeys.hash_host-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.hash_host-expanded"><a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"> Return a "hashed" form of the hostname, as used by openssh when storing</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> hashed hostnames in the known_hosts file.</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname to hash</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> @param salt: optional salt to use when hashing (must be 20 bytes long)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> @type salt: str</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-docstring"> @return: the hashed hostname</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">salt</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> </tt>
+<a name="HostKeys.hash_host"></a><div id="HostKeys.hash_host-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="HostKeys.hash_host-toggle" onclick="return toggle('HostKeys.hash_host');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeys-class.html#hash_host">hash_host</a><tt class="py-op">(</tt><tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeys.hash_host-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeys.hash_host-expanded"><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> Return a "hashed" form of the hostname, as used by openssh when storing</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> hashed hostnames in the known_hosts file.</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> @param hostname: the hostname to hash</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> @param salt: optional salt to use when hashing (must be 20 bytes long)</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-docstring"> @type salt: str</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> @return: the hashed hostname</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">salt</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -435,16 +436,16 @@ paramiko.sftp_si.randpool
paramiko.transport.randpool
paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-41', 'randpool', 'link-41');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-42', 'get_bytes', 'link-42');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">salt</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'|1|'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">salt</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'|'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">hmac</tt> <tt class="py-op">=</tt> <tt class="py-name">HMAC</tt><tt class="py-op">.</tt><tt class="py-name">HMAC</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">hostkey</tt> <tt class="py-op">=</tt> <tt class="py-string">'|1|%s|%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">hmac</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-43', 'hash_host', 'link-30');">hash_host</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-44', 'hash_host', 'link-30');">hash_host</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">salt</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'|1|'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">salt</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'|'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">hmac</tt> <tt class="py-op">=</tt> <tt class="py-name">HMAC</tt><tt class="py-op">.</tt><tt class="py-name">HMAC</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">hostkey</tt> <tt class="py-op">=</tt> <tt class="py-string">'|1|%s|%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">hmac</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-43', 'hash_host', 'link-30');">hash_host</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="paramiko.HostKeys.hash_host" class="py-name" href="#" onclick="return doclink('link-44', 'hash_host', 'link-30');">hash_host</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -477,7 +478,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.hostkeys.HostKeyEntry-class.html b/docs/paramiko.hostkeys.HostKeyEntry-class.html
index 99256a7..8ac26c2 100644
--- a/docs/paramiko.hostkeys.HostKeyEntry-class.html
+++ b/docs/paramiko.hostkeys.HostKeyEntry-class.html
@@ -233,7 +233,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_gex-module.html b/docs/paramiko.kex_gex-module.html
index b2d8668..7fa7935 100644
--- a/docs/paramiko.kex_gex-module.html
+++ b/docs/paramiko.kex_gex-module.html
@@ -434,6 +434,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -521,7 +528,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_gex-pysrc.html b/docs/paramiko.kex_gex-pysrc.html
index 2bc411e..9dd880c 100644
--- a/docs/paramiko.kex_gex-pysrc.html
+++ b/docs/paramiko.kex_gex-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.kex_gex-module.html" onclick="show_private();">Module paramiko.kex_gex</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Variant on L{KexGroup1 &lt;paramiko.kex_group1.KexGroup1&gt;} where the prime "p" and</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">generator "g" are provided by the server. A bit more work is required on the</tt> </tt>
@@ -114,12 +114,12 @@ paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doc
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-22', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-23" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST" class="py-name" href="#" onclick="return doclink('link-23', '_MSG_KEXDH_GEX_REQUEST', 'link-14');">_MSG_KEXDH_GEX_REQUEST</a></tt><tt class="py-op">,</tt> <tt id="link-24" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD" class="py-name" href="#" onclick="return doclink('link-24', '_MSG_KEXDH_GEX_REQUEST_OLD', 'link-10');">_MSG_KEXDH_GEX_REQUEST_OLD</a></tt><tt class="py-op">)</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment"># request a bit range: we accept (min_bits) to (max_bits), but prefer</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># (preferred_bits). according to the spec, we shouldn't pull the</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># minimum up above 1024.</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-25', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-comment"># (preferred_bits). according to the spec, we shouldn't pull the</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># minimum up above 1024.</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-25', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_test_old_style</tt><tt class="py-op">:</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-comment"># only used for unit tests: we shouldn't ever send this</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-26', 'add_byte', 'link-26');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD" class="py-name" href="#" onclick="return doclink('link-27', '_MSG_KEXDH_GEX_REQUEST_OLD', 'link-10');">_MSG_KEXDH_GEX_REQUEST_OLD</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-26', 'add_byte', 'link-26');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD" class="py-name" href="#" onclick="return doclink('link-27', '_MSG_KEXDH_GEX_REQUEST_OLD', 'link-10');">_MSG_KEXDH_GEX_REQUEST_OLD</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-28', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-29', 'preferred_bits', 'link-18');">preferred_bits</a></tt><tt class="py-op">)</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_style</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -145,11 +145,11 @@ paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doc
</div><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
<a name="KexGex._generate_x"></a><div id="KexGex._generate_x-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="KexGex._generate_x-toggle" onclick="return toggle('KexGex._generate_x');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html#_generate_x">_generate_x</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="KexGex._generate_x-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._generate_x-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-comment"># generate an "x" (1 &lt; x &lt; (p-1)/2).</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">//</tt> <tt class="py-number">2</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">//</tt> <tt class="py-number">2</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">qnorm</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-47', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-48', 'deflate_long', 'link-48');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">qhbyte</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">qnorm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">bytes</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">qnorm</tt><tt class="py-op">)</tt> </tt>
@@ -212,23 +212,23 @@ paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">preferredbits</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-58', 'get_int', 'link-57');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">maxbits</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-59', 'get_int', 'link-57');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-comment"># smoosh the user's preferred size into our own limits</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">preferredbits</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-60', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">preferredbits</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-60', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">:</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">preferredbits</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-61', 'max_bits', 'link-17');">max_bits</a></tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">preferredbits</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-62', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">:</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">preferredbits</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-63', 'min_bits', 'link-16');">min_bits</a></tt> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-comment"># fix min/max if they're inconsistent. technically, we could just pout</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># and hang up, but there's no harm in giving them the benefit of the</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># doubt and just picking a bitsize for them.</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">minbits</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">preferredbits</tt><tt class="py-op">:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-comment"># and hang up, but there's no harm in giving them the benefit of the</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-comment"># doubt and just picking a bitsize for them.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">minbits</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">preferredbits</tt><tt class="py-op">:</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">minbits</tt> <tt class="py-op">=</tt> <tt class="py-name">preferredbits</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">maxbits</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">preferredbits</tt><tt class="py-op">:</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">maxbits</tt> <tt class="py-op">=</tt> <tt class="py-name">preferredbits</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-comment"># now save a copy</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-64', 'min_bits', 'link-16');">min_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">minbits</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-64', 'min_bits', 'link-16');">min_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">minbits</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-65', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">preferredbits</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-66', 'max_bits', 'link-17');">max_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">maxbits</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-comment"># generate prime</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-67', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_get_modulus_pack</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-67', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_get_modulus_pack</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pack</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-68" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-68', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Can\'t do server-side gex with no modulus pack'</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-69', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
@@ -263,14 +263,14 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-70',
</div><a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> </tt>
<a name="KexGex._parse_kexdh_gex_request_old"></a><div id="KexGex._parse_kexdh_gex_request_old-def"><a name="L145"></a><tt class="py-lineno">145</tt> <a class="py-toggle" href="#" id="KexGex._parse_kexdh_gex_request_old-toggle" onclick="return toggle('KexGex._parse_kexdh_gex_request_old');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_request_old">_parse_kexdh_gex_request_old</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="KexGex._parse_kexdh_gex_request_old-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_request_old-expanded"><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-comment"># same as above, but without min_bits or max_bits (used by older clients like putty)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-80', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-81', 'get_int', 'link-57');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-80', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-81', 'get_int', 'link-57');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-comment"># smoosh the user's preferred size into our own limits</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-82', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-83', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-82', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-83', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">:</tt> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-84', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-85', 'max_bits', 'link-17');">max_bits</a></tt> </tt>
<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-86', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-87', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">:</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-88', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-89', 'min_bits', 'link-16');">min_bits</a></tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-comment"># generate prime</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-90', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_get_modulus_pack</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-90', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_get_modulus_pack</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pack</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-91" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-91', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Can\'t do server-side gex with no modulus pack'</tt><tt class="py-op">)</tt> </tt>
<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-92', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="paramiko.auth_handler.DEBUG
@@ -308,7 +308,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-93',
</div><div id="KexGex._parse_kexdh_gex_group-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_group-expanded"><a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method paramiko.Message.get_mpint()=paramiko.Message-class.html#get_mpint"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-107', 'get_mpint', 'link-107');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-108', 'get_mpint', 'link-107');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-comment"># reject if p's bit length &lt; 1024 or &gt; 8192</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">bitlen</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-109', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Function paramiko.util.bit_length()=paramiko.util-module.html#bit_length"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-110', 'bit_length', 'link-110');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">bitlen</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-109', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Function paramiko.util.bit_length()=paramiko.util-module.html#bit_length"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-110', 'bit_length', 'link-110');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">bitlen</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1024</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">bitlen</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">8192</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-111" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-111', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server-generated gex p (don\'t ask) is out of range (%d bits)'</tt> <tt class="py-op">%</tt> <tt class="py-name">bitlen</tt><tt class="py-op">)</tt> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-112', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-113" class="py-name"><a title="paramiko.auth_handler.DEBUG
@@ -335,7 +335,7 @@ paramiko.transport.DEBUG
paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-113', 'DEBUG', 'link-70');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Got server p (%d bits)'</tt> <tt class="py-op">%</tt> <tt class="py-name">bitlen</tt><tt class="py-op">)</tt> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_generate_x</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-comment"># now compute e = g^x mod p</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-114', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-115', 'add_byte', 'link-26');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-116" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_INIT" class="py-name" href="#" onclick="return doclink('link-116', '_MSG_KEXDH_GEX_INIT', 'link-12');">_MSG_KEXDH_GEX_INIT</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-117', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
@@ -351,7 +351,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-113'
<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-123', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name" targets="Method paramiko.Transport.get_server_key()=paramiko.Transport-class.html#get_server_key"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-124', 'get_server_key', 'link-124');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-comment"># okay, build up the hash H of (V_C || V_S || I_C || I_S || K_S || min || n || max || p || g || e || f || K)</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-125', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-125', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-126', 'add', 'link-126');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-127', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-128', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-129', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-130', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">,</tt> </tt>
@@ -366,13 +366,13 @@ paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-126
<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-139', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-140', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-141', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-142', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-142', 'new', 'link-142');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-143', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># sign it</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-143', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-144', 'get_server_key', 'link-124');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method paramiko.AgentKey.sign_ssh_data()=paramiko.AgentKey-class.html#sign_ssh_data,Method paramiko.DSSKey.sign_ssh_data()=paramiko.DSSKey-class.html#sign_ssh_data,Method paramiko.PKey.sign_ssh_data()=paramiko.PKey-class.html#sign_ssh_data,Method paramiko.RSAKey.sign_ssh_data()=paramiko.RSAKey-class.html#sign_ssh_data"><a title="paramiko.AgentKey.sign_ssh_data
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-144', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-145', 'get_server_key', 'link-124');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method paramiko.AgentKey.sign_ssh_data()=paramiko.AgentKey-class.html#sign_ssh_data,Method paramiko.DSSKey.sign_ssh_data()=paramiko.DSSKey-class.html#sign_ssh_data,Method paramiko.PKey.sign_ssh_data()=paramiko.PKey-class.html#sign_ssh_data,Method paramiko.RSAKey.sign_ssh_data()=paramiko.RSAKey-class.html#sign_ssh_data"><a title="paramiko.AgentKey.sign_ssh_data
paramiko.DSSKey.sign_ssh_data
paramiko.PKey.sign_ssh_data
-paramiko.RSAKey.sign_ssh_data" class="py-name" href="#" onclick="return doclink('link-145', 'sign_ssh_data', 'link-145');">sign_ssh_data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-146', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.RSAKey.sign_ssh_data" class="py-name" href="#" onclick="return doclink('link-146', 'sign_ssh_data', 'link-146');">sign_ssh_data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-147', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -392,42 +392,42 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-147', 'randpool', 'link-50');">randpool</a></tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-148', 'randpool', 'link-50');">randpool</a></tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-comment"># send reply</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-148" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-148', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-149', 'add_byte', 'link-26');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REPLY" class="py-name" href="#" onclick="return doclink('link-150', '_MSG_KEXDH_GEX_REPLY', 'link-13');">_MSG_KEXDH_GEX_REPLY</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-151', 'add_string', 'link-151');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-152', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-153', 'add_string', 'link-151');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-154', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-155', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-149" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-149', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-150', 'add_byte', 'link-26');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REPLY" class="py-name" href="#" onclick="return doclink('link-151', '_MSG_KEXDH_GEX_REPLY', 'link-13');">_MSG_KEXDH_GEX_REPLY</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-152', 'add_string', 'link-152');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-153', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-154', 'add_string', 'link-152');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-155', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-156', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> </tt>
<a name="KexGex._parse_kexdh_gex_reply"></a><div id="KexGex._parse_kexdh_gex_reply-def"><a name="L220"></a><tt class="py-lineno">220</tt> <a class="py-toggle" href="#" id="KexGex._parse_kexdh_gex_reply-toggle" onclick="return toggle('KexGex._parse_kexdh_gex_reply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_reply">_parse_kexdh_gex_reply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="KexGex._parse_kexdh_gex_reply-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_reply-expanded"><a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-156', 'get_string', 'link-156');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-157', 'get_mpint', 'link-107');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-158', 'get_string', 'link-156');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="KexGex._parse_kexdh_gex_reply-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_reply-expanded"><a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-157', 'get_string', 'link-157');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-158', 'get_mpint', 'link-107');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-159', 'get_string', 'link-157');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-159" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-159', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server kex "f" is out of range'</tt><tt class="py-op">)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-160" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-160', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server kex "f" is out of range'</tt><tt class="py-op">)</tt> </tt>
<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-comment"># okay, build up the hash H of (V_C || V_S || I_C || I_S || K_S || min || n || max || p || g || e || f || K)</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-160', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="paramiko.HostKeys.add
-paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-161', 'add', 'link-126');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-162', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-163', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-164', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-165', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">,</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-161" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-161', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.HostKeys.add
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-162', 'add', 'link-126');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-163', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-164', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-165', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-166', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">,</tt> </tt>
<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">host_key</tt><tt class="py-op">)</tt> </tt>
<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_style</tt><tt class="py-op">:</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-166', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-167', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-168', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-169', 'preferred_bits', 'link-18');">preferred_bits</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-167', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-168', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-169', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-170', 'preferred_bits', 'link-18');">preferred_bits</a></tt><tt class="py-op">)</tt> </tt>
<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_style</tt><tt class="py-op">:</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-170', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-171', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-172', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-173', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-174', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-175', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-176', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-177', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-178', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_verify_key</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-179', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-171', 'add_int', 'link-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-172', 'max_bits', 'link-17');">max_bits</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-173', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-174', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-175', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-176', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-177', 'add_mpint', 'link-75');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-178', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-179', 'new', 'link-142');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-180', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_verify_key</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-181', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -461,7 +461,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:38 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_gex.KexGex-class.html b/docs/paramiko.kex_gex.KexGex-class.html
index 02b53fc..fc65578 100644
--- a/docs/paramiko.kex_gex.KexGex-class.html
+++ b/docs/paramiko.kex_gex.KexGex-class.html
@@ -127,6 +127,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -134,7 +135,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -254,7 +257,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_group1-module.html b/docs/paramiko.kex_group1-module.html
index 0c6b972..22ff9a1 100644
--- a/docs/paramiko.kex_group1-module.html
+++ b/docs/paramiko.kex_group1-module.html
@@ -451,6 +451,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -560,7 +567,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_group1-pysrc.html b/docs/paramiko.kex_group1-pysrc.html
index 1d32b96..a88ede3 100644
--- a/docs/paramiko.kex_group1-pysrc.html
+++ b/docs/paramiko.kex_group1-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.kex_group1-module.html" onclick="show_private();">Module paramiko.kex_group1</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Standard SSH key exchange ("kex" if you wanna sound cool). Diffie-Hellman of</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">1024 bit key halves, using a known "p" prime and "g" generator.</tt> </tt>
@@ -88,7 +88,7 @@
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable paramiko.kex_group1._MSG_KEXDH_INIT=paramiko.kex_group1-module.html#_MSG_KEXDH_INIT"><a title="paramiko.kex_group1._MSG_KEXDH_INIT" class="py-name" href="#" onclick="return doclink('link-10', '_MSG_KEXDH_INIT', 'link-10');">_MSG_KEXDH_INIT</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Variable paramiko.kex_group1._MSG_KEXDH_REPLY=paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY"><a title="paramiko.kex_group1._MSG_KEXDH_REPLY" class="py-name" href="#" onclick="return doclink('link-11', '_MSG_KEXDH_REPLY', 'link-11');">_MSG_KEXDH_REPLY</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">30</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment"># draft-ietf-secsh-transport-09.txt, page 17</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-12" class="py-name" targets="Variable paramiko.kex_group1.P=paramiko.kex_group1-module.html#P"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-12', 'P', 'link-12');">P</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFFL</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable paramiko.kex_group1.P=paramiko.kex_group1-module.html#P"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-12', 'P', 'link-12');">P</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFFL</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable paramiko.kex_group1.G=paramiko.kex_group1-module.html#G"><a title="paramiko.kex_group1.G" class="py-name" href="#" onclick="return doclink('link-13', 'G', 'link-13');">G</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
@@ -107,11 +107,11 @@ paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doc
</div><div id="KexGroup1.start_kex-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1.start_kex-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_generate_x</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-17', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-comment"># compute f = g^x mod p, but don't send it yet</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="paramiko.kex_group1.G" class="py-name" href="#" onclick="return doclink('link-18', 'G', 'link-13');">G</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-19', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="paramiko.kex_group1.G" class="py-name" href="#" onclick="return doclink('link-18', 'G', 'link-13');">G</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-19', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-20', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_INIT" class="py-name" href="#" onclick="return doclink('link-21', '_MSG_KEXDH_INIT', 'link-10');">_MSG_KEXDH_INIT</a></tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># compute e = g^x mod p (where g=2), and send it</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="paramiko.kex_group1.G" class="py-name" href="#" onclick="return doclink('link-22', 'G', 'link-13');">G</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-23', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="paramiko.kex_group1.G" class="py-name" href="#" onclick="return doclink('link-22', 'G', 'link-13');">G</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-23', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-24', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-25', 'add_byte', 'link-25');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_INIT" class="py-name" href="#" onclick="return doclink('link-26', '_MSG_KEXDH_INIT', 'link-10');">_MSG_KEXDH_INIT</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.Message.add_mpint()=paramiko.Message-class.html#add_mpint"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-27', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
@@ -127,15 +127,15 @@ paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doc
</div><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
<a name="KexGroup1._generate_x"></a><div id="KexGroup1._generate_x-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="KexGroup1._generate_x-toggle" onclick="return toggle('KexGroup1._generate_x');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html#_generate_x">_generate_x</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="KexGroup1._generate_x-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1._generate_x-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-comment"># generate an "x" (1 &lt; x &lt; q), where q is (p-1)/2.</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># p is a 128-byte (1024-bit) number, where the first 64 bits are 1. </tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># therefore q can be approximated as a 2^1023. we drop the subset of</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># potential x where the first 63 bits are 1, because some of those will be</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># larger than q (but this is a tiny tiny subset of potential x).</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-comment"># p is a 128-byte (1024-bit) number, where the first 64 bits are 1. </tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-comment"># therefore q can be approximated as a 2^1023. we drop the subset of</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># potential x where the first 63 bits are 1, because some of those will be</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-comment"># larger than q (but this is a tiny tiny subset of potential x).</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-36', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
@@ -187,14 +187,14 @@ paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick
</div><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
<a name="KexGroup1._parse_kexdh_reply"></a><div id="KexGroup1._parse_kexdh_reply-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="KexGroup1._parse_kexdh_reply-toggle" onclick="return toggle('KexGroup1._parse_kexdh_reply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_reply">_parse_kexdh_reply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="KexGroup1._parse_kexdh_reply-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1._parse_kexdh_reply-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-comment"># client mode</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-44', 'get_string', 'link-44');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-44', 'get_string', 'link-44');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method paramiko.Message.get_mpint()=paramiko.Message-class.html#get_mpint"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-45', 'get_mpint', 'link-45');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt> <tt class="py-op">&gt;</tt> <tt id="link-46" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-46', 'P', 'link-12');">P</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-47" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-47', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server kex "f" is out of range'</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-48', 'get_string', 'link-44');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-49" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-49', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-comment"># okay, build up the hash H of (V_C || V_S || I_C || I_S || K_S || e || f || K)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-50', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-50', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-51', 'add', 'link-51');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-52', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-53', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-54', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-55', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">)</tt> </tt>
@@ -202,33 +202,33 @@ paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-51'
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-57', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-58', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-59', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-60', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-61', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_verify_key</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-62', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-60', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-61', 'new', 'link-61');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-62', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_verify_key</tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">,</tt> <tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-63', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> </tt>
<a name="KexGroup1._parse_kexdh_init"></a><div id="KexGroup1._parse_kexdh_init-def"><a name="L110"></a><tt class="py-lineno">110</tt> <a class="py-toggle" href="#" id="KexGroup1._parse_kexdh_init-toggle" onclick="return toggle('KexGroup1._parse_kexdh_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_init">_parse_kexdh_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="KexGroup1._parse_kexdh_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1._parse_kexdh_init-expanded"><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-comment"># server mode</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-63', 'get_mpint', 'link-45');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">&gt;</tt> <tt id="link-64" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-64', 'P', 'link-12');">P</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-65" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-65', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Client kex "e" is out of range'</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-66', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-67', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method paramiko.Transport.get_server_key()=paramiko.Transport-class.html#get_server_key"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-68', 'get_server_key', 'link-68');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-64', 'get_mpint', 'link-45');">get_mpint</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">&gt;</tt> <tt id="link-65" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-65', 'P', 'link-12');">P</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-66" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-66', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Client kex "e" is out of range'</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt id="link-67" class="py-name"><a title="paramiko.kex_group1.P" class="py-name" href="#" onclick="return doclink('link-67', 'P', 'link-12');">P</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-68', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method paramiko.Transport.get_server_key()=paramiko.Transport-class.html#get_server_key"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-69', 'get_server_key', 'link-69');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># okay, build up the hash H of (V_C || V_S || I_C || I_S || K_S || e || f || K)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-69', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.HostKeys.add
-paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-70', 'add', 'link-51');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-71', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-72', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-73', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-74', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">)</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-75', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-76', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-77', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-78', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-79', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">hm</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-70', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.HostKeys.add
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-71', 'add', 'link-51');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-72', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-73', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt><tt class="py-op">,</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-74', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-75', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-76', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-77', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-78', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-79', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-80', 'new', 'link-61');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hm</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-81', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_K_H</tt><tt class="py-op">(</tt><tt class="py-name">K</tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-comment"># sign it</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-80', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-81', 'get_server_key', 'link-68');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Method paramiko.AgentKey.sign_ssh_data()=paramiko.AgentKey-class.html#sign_ssh_data,Method paramiko.DSSKey.sign_ssh_data()=paramiko.DSSKey-class.html#sign_ssh_data,Method paramiko.PKey.sign_ssh_data()=paramiko.PKey-class.html#sign_ssh_data,Method paramiko.RSAKey.sign_ssh_data()=paramiko.RSAKey-class.html#sign_ssh_data"><a title="paramiko.AgentKey.sign_ssh_data
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-82', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-83', 'get_server_key', 'link-69');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method paramiko.AgentKey.sign_ssh_data()=paramiko.AgentKey-class.html#sign_ssh_data,Method paramiko.DSSKey.sign_ssh_data()=paramiko.DSSKey-class.html#sign_ssh_data,Method paramiko.PKey.sign_ssh_data()=paramiko.PKey-class.html#sign_ssh_data,Method paramiko.RSAKey.sign_ssh_data()=paramiko.RSAKey-class.html#sign_ssh_data"><a title="paramiko.AgentKey.sign_ssh_data
paramiko.DSSKey.sign_ssh_data
paramiko.PKey.sign_ssh_data
-paramiko.RSAKey.sign_ssh_data" class="py-name" href="#" onclick="return doclink('link-82', 'sign_ssh_data', 'link-82');">sign_ssh_data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-83', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.RSAKey.sign_ssh_data" class="py-name" href="#" onclick="return doclink('link-84', 'sign_ssh_data', 'link-84');">sign_ssh_data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-85', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -248,15 +248,15 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-84', 'randpool', 'link-37');">randpool</a></tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-86', 'randpool', 'link-37');">randpool</a></tt><tt class="py-op">,</tt> <tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-comment"># send reply</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-85', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-86', 'add_byte', 'link-25');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_REPLY" class="py-name" href="#" onclick="return doclink('link-87', '_MSG_KEXDH_REPLY', 'link-11');">_MSG_KEXDH_REPLY</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-88', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-89', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-90', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-91', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-92', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-87', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-88', 'add_byte', 'link-25');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_REPLY" class="py-name" href="#" onclick="return doclink('link-89', '_MSG_KEXDH_REPLY', 'link-11');">_MSG_KEXDH_REPLY</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-90', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-91', 'add_mpint', 'link-27');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-92', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-93', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-94', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_activate_outbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -290,7 +290,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.kex_group1.KexGroup1-class.html b/docs/paramiko.kex_group1.KexGroup1-class.html
index 14f5fee..dace7c4 100644
--- a/docs/paramiko.kex_group1.KexGroup1-class.html
+++ b/docs/paramiko.kex_group1.KexGroup1-class.html
@@ -126,6 +126,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -133,7 +134,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -232,7 +235,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.logging22-module.html b/docs/paramiko.logging22-module.html
index 4788f11..700cf24 100644
--- a/docs/paramiko.logging22-module.html
+++ b/docs/paramiko.logging22-module.html
@@ -154,6 +154,13 @@
<a name="CRITICAL"></a><span class="summary-name">CRITICAL</span> = <code title="50">50</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -181,7 +188,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.logging22-pysrc.html b/docs/paramiko.logging22-pysrc.html
index 32675d6..27924db 100644
--- a/docs/paramiko.logging22-pysrc.html
+++ b/docs/paramiko.logging22-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.logging22-module.html">Module paramiko.logging22</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-docstring">Stub out logging on python &lt; 2.3.</tt> </tt>
<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -280,7 +280,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:34 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.logging22.Formatter-class.html b/docs/paramiko.logging22.Formatter-class.html
index a125a5d..ad2ec1d 100644
--- a/docs/paramiko.logging22.Formatter-class.html
+++ b/docs/paramiko.logging22.Formatter-class.html
@@ -93,6 +93,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -100,7 +101,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -184,7 +187,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.logging22.StreamHandler-class.html b/docs/paramiko.logging22.StreamHandler-class.html
index b00bc52..751c755 100644
--- a/docs/paramiko.logging22.StreamHandler-class.html
+++ b/docs/paramiko.logging22.StreamHandler-class.html
@@ -109,6 +109,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -116,7 +117,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -199,7 +202,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.logging22.logger-class.html b/docs/paramiko.logging22.logger-class.html
index 56195b7..ea85032 100644
--- a/docs/paramiko.logging22.logger-class.html
+++ b/docs/paramiko.logging22.logger-class.html
@@ -160,6 +160,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -167,7 +168,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -249,7 +252,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.message-module.html b/docs/paramiko.message-module.html
index 0d0fa78..c00cf46 100644
--- a/docs/paramiko.message-module.html
+++ b/docs/paramiko.message-module.html
@@ -56,6 +56,22 @@
<h1 class="epydoc">Module message</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span></p>
<p>Implementation of an SSH2 &quot;message&quot;.</p>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -82,7 +98,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.message-pysrc.html b/docs/paramiko.message-pysrc.html
index a612fd0..f1e7e64 100644
--- a/docs/paramiko.message-pysrc.html
+++ b/docs/paramiko.message-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.message-module.html" onclick="show_private();">Module paramiko.message</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Implementation of an SSH2 "message".</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -175,7 +175,7 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
paramiko.SFTPHandle.read
paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-20', 'read', 'link-11');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">n</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'\x00'</tt><tt class="py-op">*</tt><tt class="py-name">n</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">b</tt> <tt class="py-op">+</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">b</tt> </tt>
</div><a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> </tt>
<a name="Message.get_byte"></a><div id="Message.get_byte-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="Message.get_byte-toggle" onclick="return toggle('Message.get_byte');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_byte">get_byte</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -406,7 +406,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.packet-module.html b/docs/paramiko.packet-module.html
index ae7f499..31640e9 100644
--- a/docs/paramiko.packet-module.html
+++ b/docs/paramiko.packet-module.html
@@ -465,6 +465,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -552,7 +559,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.packet-pysrc.html b/docs/paramiko.packet-pysrc.html
index 1571204..232154b 100644
--- a/docs/paramiko.packet-pysrc.html
+++ b/docs/paramiko.packet-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.packet-module.html" onclick="show_private();">Module paramiko.packet</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Packetizer.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -112,8 +112,8 @@
<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment"># READ the secsh RFC's before raising these values. if anything,</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># they should probably be lower.</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">REKEY_PACKETS</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">30</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment"># they should probably be lower.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">REKEY_PACKETS</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">30</tt><tt class="py-op">)</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">REKEY_BYTES</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">30</tt><tt class="py-op">)</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
<a name="Packetizer.__init__"></a><div id="Packetizer.__init__-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="Packetizer.__init__-toggle" onclick="return toggle('Packetizer.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -126,14 +126,14 @@
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment"># used for noticing when to re-key:</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_packets</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets_overflow</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># current inbound/outbound ciphering:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_out</tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_out</tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_in</tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_out</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_in</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
@@ -149,10 +149,10 @@
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_in</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-comment"># lock around outbound writes (packet computation)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__write_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">RLock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__write_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">RLock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-comment"># keepalives:</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_interval</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_interval</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_last</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
@@ -174,7 +174,7 @@
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_packets</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-comment"># wait until the reset happens in both directions before clearing rekey flag</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">|=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">|=</tt> <tt class="py-number">1</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
@@ -192,7 +192,7 @@
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets_overflow</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-comment"># wait until the reset happens in both directions before clearing rekey flag</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">|=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">|=</tt> <tt class="py-number">2</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__init_count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
@@ -263,7 +263,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-comment"># handle over-reading from reading the banner line</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">n</tt><tt class="py-op">]</tt> </tt>
<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt><tt class="py-op">[</tt><tt class="py-name">n</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">-=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
@@ -303,13 +303,13 @@ paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="r
<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-19', 'error', 'link-19');">error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># on Linux, sometimes instead of socket.timeout, we get</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># EAGAIN. this is a bug in recent (&gt; 2.6.9) kernels but</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># we need to work around it.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EAGAIN</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment"># EAGAIN. this is a bug in recent (&gt; 2.6.9) kernels but</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-comment"># we need to work around it.</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EAGAIN</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EINTR</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># syscall interrupted; try again</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__closed</tt><tt class="py-op">:</tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -337,12 +337,12 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EINTR</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-comment"># syscall interrupted; try again</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-comment"># could be: (32, 'Broken pipe')</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">got_timeout</tt><tt class="py-op">:</tt> </tt>
<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__closed</tt><tt class="py-op">:</tt> </tt>
@@ -359,11 +359,11 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> Read a line from the socket. We assume no data is pending after the</tt> </tt>
<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> line, so it's okay to attempt large reads.</tt> </tt>
<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt> </tt>
<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'\n'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">buf</tt><tt class="py-op">:</tt> </tt>
<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_timeout</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt> <tt class="py-op">+=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-name">n</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__remainder</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-name">n</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">n</tt><tt class="py-op">]</tt> </tt>
<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'\r'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
@@ -374,7 +374,7 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"><tt class="py-docstring"> Write a block of data using the current cipher, as an SSH block.</tt> </tt>
<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-comment"># encrypt this sucka</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">cmd</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">cmd</tt> <tt class="py-keyword">in</tt> <tt id="link-23" class="py-name" targets="Variable paramiko.auth_handler.MSG_NAMES=paramiko.auth_handler-module.html#MSG_NAMES,Variable paramiko.channel.MSG_NAMES=paramiko.channel-module.html#MSG_NAMES,Variable paramiko.client.MSG_NAMES=paramiko.client-module.html#MSG_NAMES,Variable paramiko.common.MSG_NAMES=paramiko.common-module.html#MSG_NAMES,Variable paramiko.dsskey.MSG_NAMES=paramiko.dsskey-module.html#MSG_NAMES,Variable paramiko.hostkeys.MSG_NAMES=paramiko.hostkeys-module.html#MSG_NAMES,Variable paramiko.kex_gex.MSG_NAMES=paramiko.kex_gex-module.html#MSG_NAMES,Variable paramiko.kex_group1.MSG_NAMES=paramiko.kex_group1-module.html#MSG_NAMES,Variable paramiko.packet.MSG_NAMES=paramiko.packet-module.html#MSG_NAMES,Variable paramiko.pkey.MSG_NAMES=paramiko.pkey-module.html#MSG_NAMES,Variable paramiko.rsakey.MSG_NAMES=paramiko.rsakey-module.html#MSG_NAMES,Variable paramiko.server.MSG_NAMES=paramiko.server-module.html#MSG_NAMES,Variable paramiko.sftp.MSG_NAMES=paramiko.sftp-module.html#MSG_NAMES,Variable paramiko.sftp_attr.MSG_NAMES=paramiko.sftp_attr-module.html#MSG_NAMES,Variable paramiko.sftp_client.MSG_NAMES=paramiko.sftp_client-module.html#MSG_NAMES,Variable paramiko.sftp_file.MSG_NAMES=paramiko.sftp_file-module.html#MSG_NAMES,Variable paramiko.sftp_handle.MSG_NAMES=paramiko.sftp_handle-module.html#MSG_NAMES,Variable paramiko.sftp_server.MSG_NAMES=paramiko.sftp_server-module.html#MSG_NAMES,Variable paramiko.sftp_si.MSG_NAMES=paramiko.sftp_si-module.html#MSG_NAMES,Variable paramiko.transport.MSG_NAMES=paramiko.transport-module.html#MSG_NAMES,Variable paramiko.util.MSG_NAMES=paramiko.util-module.html#MSG_NAMES"><a title="paramiko.auth_handler.MSG_NAMES
paramiko.channel.MSG_NAMES
@@ -476,7 +476,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-27',
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-32', 'packet', 'link-25');">packet</a></tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-comment"># + mac</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_out</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_out</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_out</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-33" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-33', 'packet', 'link-25');">packet</a></tt> </tt>
<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt id="link-34" class="py-name" targets="Function paramiko.packet.compute_hmac()=paramiko.packet-module.html#compute_hmac"><a title="paramiko.packet.compute_hmac" class="py-name" href="#" onclick="return doclink('link-34', 'compute_hmac', 'link-34');">compute_hmac</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_key_out</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_engine_out</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_out</tt><tt class="py-op">]</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_out</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_out</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt> </tt>
@@ -486,7 +486,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-27',
<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_packets</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_packets</tt> <tt class="py-op">%</tt> <tt class="py-number">100</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-comment"># stirring the randpool takes 30ms on my ibook!!</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-35" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt id="link-35" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -510,7 +510,7 @@ paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-3
<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_packets</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">REKEY_PACKETS</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sent_bytes</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">REKEY_BYTES</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> \ </tt>
<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt><tt class="py-op">:</tt> </tt>
<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-comment"># only ask once for rekeying</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -574,7 +574,7 @@ paramiko.transport.DEBUG
paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-38', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-39" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-39', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.util.format_binary" class="py-name" href="#" onclick="return doclink('link-40', 'format_binary', 'link-29');">format_binary</a></tt><tt class="py-op">(</tt><tt class="py-name">header</tt><tt class="py-op">,</tt> <tt class="py-string">'IN: '</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-comment"># leftover contains decrypted bytes from the first block (after the length field)</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">leftover</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">leftover</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">packet_size</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">leftover</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_in</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-41" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-41', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Invalid packet blocking'</tt><tt class="py-op">)</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_all</tt><tt class="py-op">(</tt><tt class="py-name">packet_size</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_in</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">leftover</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -668,18 +668,18 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-58',
<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_in</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__sequence_number_in</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt> </tt>
<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt>
<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-comment"># check for rekey</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_bytes</tt> <tt class="py-op">+=</tt> <tt class="py-name">packet_size</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_in</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_bytes</tt> <tt class="py-op">+=</tt> <tt class="py-name">packet_size</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_in</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt> </tt>
<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt><tt class="py-op">:</tt> </tt>
<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-comment"># we've asked to rekey -- give them 20 packets to comply before</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># dropping the connection</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets_overflow</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-comment"># dropping the connection</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets_overflow</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets_overflow</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-60" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-60', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Remote transport is ignoring rekey requests'</tt><tt class="py-op">)</tt> </tt>
<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_packets</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">REKEY_PACKETS</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__received_bytes</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">REKEY_BYTES</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-comment"># only ask once for rekeying</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -777,7 +777,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-64',
</div><a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> </tt>
<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-comment">########## protected</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> </tt>
<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> </tt>
<a name="Packetizer._log"></a><div id="Packetizer._log-def"><a name="L403"></a><tt class="py-lineno">403</tt> <a class="py-toggle" href="#" id="Packetizer._log-toggle" onclick="return toggle('Packetizer._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Packetizer._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._log-expanded"><a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__logger</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
@@ -792,7 +792,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-64',
</div><div id="Packetizer._check_keepalive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._check_keepalive-expanded"><a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_interval</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_out</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt><tt class="py-op">:</tt> </tt>
<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-comment"># wait till we're encrypting, and not in the middle of rekeying</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">now</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_last</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_interval</tt><tt class="py-op">:</tt> </tt>
<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_callback</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -873,7 +873,7 @@ paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="r
</div><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> </tt>
<a name="Packetizer._build_packet"></a><div id="Packetizer._build_packet-def"><a name="L472"></a><tt class="py-lineno">472</tt> <a class="py-toggle" href="#" id="Packetizer._build_packet-toggle" onclick="return toggle('Packetizer._build_packet');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_build_packet">_build_packet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Packetizer._build_packet-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._build_packet-expanded"><a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-comment"># pad up at least 4 bytes, to nearest block-size (usually 8)</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">bsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_out</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">bsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_out</tt> </tt>
<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-name">padding</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> <tt class="py-op">+</tt> <tt class="py-name">bsize</tt> <tt class="py-op">-</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">bsize</tt><tt class="py-op">)</tt> </tt>
<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-71', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;IB'</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">padding</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">padding</tt><tt class="py-op">)</tt> </tt>
<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt id="link-72" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-72', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">payload</tt> </tt>
@@ -902,13 +902,13 @@ paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-7
paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-75', 'get_bytes', 'link-75');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">padding</tt><tt class="py-op">)</tt> </tt>
<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-comment"># cute trick i caught openssh doing: if we're not encrypting,</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># don't waste random bytes for the padding</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-76" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-76', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">padding</tt><tt class="py-op">)</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-comment"># don't waste random bytes for the padding</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-76', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">padding</tt><tt class="py-op">)</tt> </tt>
<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-77" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-77', 'packet', 'link-25');">packet</a></tt> </tt>
</div><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> </tt>
<a name="Packetizer._trigger_rekey"></a><div id="Packetizer._trigger_rekey-def"><a name="L486"></a><tt class="py-lineno">486</tt> <a class="py-toggle" href="#" id="Packetizer._trigger_rekey-toggle" onclick="return toggle('Packetizer._trigger_rekey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_trigger_rekey">_trigger_rekey</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Packetizer._trigger_rekey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._trigger_rekey-expanded"><a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-comment"># outside code should check for this flag</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
</div></div><a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -942,7 +942,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.packet.NeedRekeyException-class.html b/docs/paramiko.packet.NeedRekeyException-class.html
index fbfd820..5ecc707 100644
--- a/docs/paramiko.packet.NeedRekeyException-class.html
+++ b/docs/paramiko.packet.NeedRekeyException-class.html
@@ -84,15 +84,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -143,7 +148,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pipe-module.html b/docs/paramiko.pipe-module.html
index 808764c..38bb8cd 100644
--- a/docs/paramiko.pipe-module.html
+++ b/docs/paramiko.pipe-module.html
@@ -135,6 +135,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== FUNCTION DETAILS ==================== -->
<a name="section-FunctionDetails"></a>
<table class="details" border="1" cellpadding="3"
@@ -193,7 +209,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pipe-pysrc.html b/docs/paramiko.pipe-pysrc.html
index 4a16395..ba5e45c 100644
--- a/docs/paramiko.pipe-pysrc.html
+++ b/docs/paramiko.pipe-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.pipe-module.html" onclick="show_private();">Module paramiko.pipe</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Abstraction of a one-way pipe where the read end can be used in select().</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">Normally this is trivial, but Windows makes it nearly impossible.</tt> </tt>
@@ -126,7 +126,7 @@ paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-4', 'close', 'link-3');">close</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wfd</tt><tt class="py-op">)</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-comment"># used for unit tests:</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
</div><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> </tt>
<a name="PosixPipe.fileno"></a><div id="PosixPipe.fileno-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="PosixPipe.fileno-toggle" onclick="return toggle('PosixPipe.fileno');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-class.html#fileno">fileno</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="PosixPipe.fileno-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.fileno-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rfd</tt> </tt>
@@ -164,7 +164,7 @@ paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink(
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">serv</tt><tt class="py-op">.</tt><tt class="py-name">listen</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-comment"># need to save sockets in _rsock/_wsock so they don't get closed</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rsock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_INET</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rsock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_INET</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rsock</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method paramiko.SSHClient.connect()=paramiko.SSHClient-class.html#connect,Method paramiko.Transport.connect()=paramiko.Transport-class.html#connect"><a title="paramiko.SSHClient.connect
paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-8', 'connect', 'link-8');">connect</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'127.0.0.1'</tt><tt class="py-op">,</tt> <tt class="py-name">serv</tt><tt class="py-op">.</tt><tt class="py-name">getsockname</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
@@ -211,7 +211,7 @@ paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-12', 'close', 'link-3');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-comment"># used for unit tests:</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
</div><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
<a name="WindowsPipe.fileno"></a><div id="WindowsPipe.fileno-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="WindowsPipe.fileno-toggle" onclick="return toggle('WindowsPipe.fileno');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-class.html#fileno">fileno</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="WindowsPipe.fileno-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.fileno-expanded"><a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rsock</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
@@ -305,7 +305,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pipe.OrPipe-class.html b/docs/paramiko.pipe.OrPipe-class.html
index 225310f..22f5f99 100644
--- a/docs/paramiko.pipe.OrPipe-class.html
+++ b/docs/paramiko.pipe.OrPipe-class.html
@@ -124,6 +124,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -131,7 +132,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -214,7 +217,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pipe.PosixPipe-class.html b/docs/paramiko.pipe.PosixPipe-class.html
index b0b67eb..4491515 100644
--- a/docs/paramiko.pipe.PosixPipe-class.html
+++ b/docs/paramiko.pipe.PosixPipe-class.html
@@ -171,6 +171,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -178,7 +179,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -260,7 +263,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pipe.WindowsPipe-class.html b/docs/paramiko.pipe.WindowsPipe-class.html
index 7e20560..50e4f2e 100644
--- a/docs/paramiko.pipe.WindowsPipe-class.html
+++ b/docs/paramiko.pipe.WindowsPipe-class.html
@@ -174,6 +174,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -181,7 +182,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -263,7 +266,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pkey-module.html b/docs/paramiko.pkey-module.html
index baa61f7..3aae4f7 100644
--- a/docs/paramiko.pkey-module.html
+++ b/docs/paramiko.pkey-module.html
@@ -415,6 +415,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -502,7 +509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.pkey-pysrc.html b/docs/paramiko.pkey-pysrc.html
index 8a9e368..ef16bb0 100644
--- a/docs/paramiko.pkey-pysrc.html
+++ b/docs/paramiko.pkey-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.pkey-module.html" onclick="show_private();">Module paramiko.pkey</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Common API for all public keys.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -95,7 +95,7 @@
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-comment"># known encryption types for private key files:</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-11" class="py-name" targets="Variable paramiko.PKey._CIPHER_TABLE=paramiko.PKey-class.html#_CIPHER_TABLE"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-11', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Variable paramiko.PKey._CIPHER_TABLE=paramiko.PKey-class.html#_CIPHER_TABLE"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-11', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-string">'DES-EDE3-CBC'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'cipher'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">,</tt> <tt class="py-string">'keysize'</tt><tt class="py-op">:</tt> <tt class="py-number">24</tt><tt class="py-op">,</tt> <tt class="py-string">'blocksize'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt> <tt class="py-op">}</tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> </tt>
@@ -186,7 +186,7 @@
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> format.</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">MD5</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">MD5</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-12', 'new', 'link-12');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt>
<a name="PKey.get_base64"></a><div id="PKey.get_base64-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="PKey.get_base64-toggle" onclick="return toggle('PKey.get_base64');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#get_base64">get_base64</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="PKey.get_base64-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.get_base64-expanded"><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -252,7 +252,7 @@
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">=</tt><tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-12" class="py-name" targets="Class Method paramiko.PKey.from_private_key_file()=paramiko.PKey-class.html#from_private_key_file"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-12', 'from_private_key_file', 'link-12');">from_private_key_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-13" class="py-name"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-13', 'from_private_key_file', 'link-12');">from_private_key_file</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-13" class="py-name" targets="Class Method paramiko.PKey.from_private_key_file()=paramiko.PKey-class.html#from_private_key_file"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-13', 'from_private_key_file', 'link-13');">from_private_key_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="paramiko.PKey.from_private_key_file" class="py-name" href="#" onclick="return doclink('link-14', 'from_private_key_file', 'link-13');">from_private_key_file</a></tt><tt class="py-op">)</tt> </tt>
<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt>
<a name="PKey.from_private_key"></a><div id="PKey.from_private_key-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="PKey.from_private_key-toggle" onclick="return toggle('PKey.from_private_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#from_private_key">from_private_key</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">file_obj</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="PKey.from_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.from_private_key-expanded"><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -276,7 +276,7 @@
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">=</tt><tt class="py-name">file_obj</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">=</tt><tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt id="link-14" class="py-name" targets="Class Method paramiko.PKey.from_private_key()=paramiko.PKey-class.html#from_private_key"><a title="paramiko.PKey.from_private_key" class="py-name" href="#" onclick="return doclink('link-14', 'from_private_key', 'link-14');">from_private_key</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="paramiko.PKey.from_private_key" class="py-name" href="#" onclick="return doclink('link-15', 'from_private_key', 'link-14');">from_private_key</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt id="link-15" class="py-name" targets="Class Method paramiko.PKey.from_private_key()=paramiko.PKey-class.html#from_private_key"><a title="paramiko.PKey.from_private_key" class="py-name" href="#" onclick="return doclink('link-15', 'from_private_key', 'link-15');">from_private_key</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="paramiko.PKey.from_private_key" class="py-name" href="#" onclick="return doclink('link-16', 'from_private_key', 'link-15');">from_private_key</a></tt><tt class="py-op">)</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> </tt>
<a name="PKey.write_private_key_file"></a><div id="PKey.write_private_key_file-def"><a name="L225"></a><tt class="py-lineno">225</tt> <a class="py-toggle" href="#" id="PKey.write_private_key_file-toggle" onclick="return toggle('PKey.write_private_key_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#write_private_key_file">write_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="PKey.write_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.write_private_key_file-expanded"><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -331,9 +331,9 @@
<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> encrypted, and C{password} is C{None}.</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key file is invalid.</tt> </tt>
<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-16', 'open', 'link-16');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-17', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_private_key</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -344,18 +344,18 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-17', 'close', 'link-17');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-18', 'close', 'link-18');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
</div><a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
<a name="PKey._read_private_key"></a><div id="PKey._read_private_key-def"><a name="L283"></a><tt class="py-lineno">283</tt> <a class="py-toggle" href="#" id="PKey._read_private_key-toggle" onclick="return toggle('PKey._read_private_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#_read_private_key">_read_private_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">f</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="PKey._read_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._read_private_key-expanded"><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method paramiko.BufferedFile.readlines()=paramiko.BufferedFile-class.html#readlines"><a title="paramiko.BufferedFile.readlines" class="py-name" href="#" onclick="return doclink('link-18', 'readlines', 'link-18');">readlines</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="PKey._read_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._read_private_key-expanded"><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method paramiko.BufferedFile.readlines()=paramiko.BufferedFile-class.html#readlines"><a title="paramiko.BufferedFile.readlines" class="py-name" href="#" onclick="return doclink('link-19', 'readlines', 'link-19');">readlines</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">start</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'-----BEGIN '</tt> <tt class="py-op">+</tt> <tt class="py-name">tag</tt> <tt class="py-op">+</tt> <tt class="py-string">' PRIVATE KEY-----'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">start</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-19" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-19', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'not a valid '</tt> <tt class="py-op">+</tt> <tt class="py-name">tag</tt> <tt class="py-op">+</tt> <tt class="py-string">' private key file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-20" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-20', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'not a valid '</tt> <tt class="py-op">+</tt> <tt class="py-name">tag</tt> <tt class="py-op">+</tt> <tt class="py-string">' private key file'</tt><tt class="py-op">)</tt> </tt>
<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-comment"># parse any headers first</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">start</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">lines</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">': '</tt><tt class="py-op">)</tt> </tt>
@@ -364,35 +364,35 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-comment"># find end</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt> </tt>
<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">[</tt><tt class="py-name">end</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'-----END '</tt> <tt class="py-op">+</tt> <tt class="py-name">tag</tt> <tt class="py-op">+</tt> <tt class="py-string">' PRIVATE KEY-----'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-comment"># if we trudged to the end of the file, just try to cope.</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">decodestring</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">:</tt><tt class="py-name">end</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">binascii</tt><tt class="py-op">.</tt><tt class="py-name">Error</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-20" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-20', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'base64 decoding error: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-21" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-21', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'base64 decoding error: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'proc-type'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-comment"># unencryped: done</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-comment"># encrypted keyfile: will need a password</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'proc-type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'4,ENCRYPTED'</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-21" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-21', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown private key structure "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'proc-type'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'proc-type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'4,ENCRYPTED'</tt><tt class="py-op">:</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-22" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-22', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown private key structure "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'proc-type'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">encryption_type</tt><tt class="py-op">,</tt> <tt class="py-name">saltstr</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'dek-info'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> </tt>
<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-22" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-22', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Can\'t parse DEK-info in private key file'</tt><tt class="py-op">)</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">encryption_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-23', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-24" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-24', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown private key cipher "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">encryption_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-23" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-23', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Can\'t parse DEK-info in private key file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">encryption_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-24', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-25" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-25', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown private key cipher "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">encryption_type</tt><tt class="py-op">)</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-comment"># if no password was passed in, raise an exception pointing out that we need one</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-25" class="py-name"><a title="paramiko.PasswordRequiredException" class="py-name" href="#" onclick="return doclink('link-25', 'PasswordRequiredException', 'link-10');">PasswordRequiredException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Private key file is encrypted'</tt><tt class="py-op">)</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-26', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'cipher'</tt><tt class="py-op">]</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">keysize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-27', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'keysize'</tt><tt class="py-op">]</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-28', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-26" class="py-name"><a title="paramiko.PasswordRequiredException" class="py-name" href="#" onclick="return doclink('link-26', 'PasswordRequiredException', 'link-10');">PasswordRequiredException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Private key file is encrypted'</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-27', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'cipher'</tt><tt class="py-op">]</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">keysize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-28', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'keysize'</tt><tt class="py-op">]</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-29', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">encryption_type</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">unhexlify</tt><tt class="py-op">(</tt><tt class="py-name">saltstr</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-29', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Function paramiko.util.generate_key_bytes()=paramiko.util-module.html#generate_key_bytes"><a title="paramiko.util.generate_key_bytes" class="py-name" href="#" onclick="return doclink('link-30', 'generate_key_bytes', 'link-30');">generate_key_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">keysize</tt><tt class="py-op">)</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cipher</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decrypt</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-30', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Function paramiko.util.generate_key_bytes()=paramiko.util-module.html#generate_key_bytes"><a title="paramiko.util.generate_key_bytes" class="py-name" href="#" onclick="return doclink('link-31', 'generate_key_bytes', 'link-31');">generate_key_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">keysize</tt><tt class="py-op">)</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cipher</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-32', 'new', 'link-12');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decrypt</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
</div><a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> </tt>
<a name="PKey._write_private_key_file"></a><div id="PKey._write_private_key_file-def"><a name="L330"></a><tt class="py-lineno">330</tt> <a class="py-toggle" href="#" id="PKey._write_private_key_file-toggle" onclick="return toggle('PKey._write_private_key_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#_write_private_key_file">_write_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="PKey._write_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._write_private_key_file-expanded"><a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -412,12 +412,12 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error writing the file.</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-31', 'open', 'link-16');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-number">0600</tt><tt class="py-op">)</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-33', 'open', 'link-17');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-number">0600</tt><tt class="py-op">)</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-comment"># grrr... the mode doesn't always take hold</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.SFTPClient.chmod()=paramiko.SFTPClient-class.html#chmod,Method paramiko.SFTPFile.chmod()=paramiko.SFTPFile-class.html#chmod"><a title="paramiko.SFTPClient.chmod
-paramiko.SFTPFile.chmod" class="py-name" href="#" onclick="return doclink('link-32', 'chmod', 'link-32');">chmod</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-number">0600</tt><tt class="py-op">)</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.SFTPClient.chmod()=paramiko.SFTPClient-class.html#chmod,Method paramiko.SFTPFile.chmod()=paramiko.SFTPFile-class.html#chmod"><a title="paramiko.SFTPClient.chmod
+paramiko.SFTPFile.chmod" class="py-name" href="#" onclick="return doclink('link-34', 'chmod', 'link-34');">chmod</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-number">0600</tt><tt class="py-op">)</tt> </tt>
<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_write_private_key</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.Agent.close
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -428,19 +428,19 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-33', 'close', 'link-17');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-35', 'close', 'link-18');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> </tt>
<a name="PKey._write_private_key"></a><div id="PKey._write_private_key-def"><a name="L354"></a><tt class="py-lineno">354</tt> <a class="py-toggle" href="#" id="PKey._write_private_key-toggle" onclick="return toggle('PKey._write_private_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#_write_private_key">_write_private_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">f</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="PKey._write_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._write_private_key-expanded"><a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-34', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'-----BEGIN %s PRIVATE KEY-----\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
+</div><div id="PKey._write_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._write_private_key-expanded"><a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-36', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'-----BEGIN %s PRIVATE KEY-----\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-comment"># since we only support one cipher here, use it</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">cipher_name</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-35', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-36', 'keys', 'link-36');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-37', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'cipher'</tt><tt class="py-op">]</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">keysize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-38', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'keysize'</tt><tt class="py-op">]</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">blocksize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-39', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'blocksize'</tt><tt class="py-op">]</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-40', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">cipher_name</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-37', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-38', 'keys', 'link-38');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-39', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'cipher'</tt><tt class="py-op">]</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">keysize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-40', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'keysize'</tt><tt class="py-op">]</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">blocksize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-41', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'blocksize'</tt><tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.PKey._CIPHER_TABLE" class="py-name" href="#" onclick="return doclink('link-42', '_CIPHER_TABLE', 'link-11');">_CIPHER_TABLE</a></tt><tt class="py-op">[</tt><tt class="py-name">cipher_name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -460,31 +460,31 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-41', 'randpool', 'link-41');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-42', 'get_bytes', 'link-42');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-43', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.util.generate_key_bytes" class="py-name" href="#" onclick="return doclink('link-44', 'generate_key_bytes', 'link-30');">generate_key_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">keysize</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-43', 'randpool', 'link-43');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-44', 'get_bytes', 'link-44');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-45', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.util.generate_key_bytes" class="py-name" href="#" onclick="return doclink('link-46', 'generate_key_bytes', 'link-31');">generate_key_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">keysize</tt><tt class="py-op">)</tt> </tt>
<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">blocksize</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">blocksize</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">blocksize</tt> </tt>
<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-comment">#data += randpool.get_bytes(n)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># that would make more sense ^, but it confuses openssh.</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">data</tt> <tt class="py-op">+=</tt> <tt class="py-string">'\0'</tt> <tt class="py-op">*</tt> <tt class="py-name">n</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">cipher</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encrypt</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-45', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'Proc-Type: 4,ENCRYPTED\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-46', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'DEK-Info: %s,%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cipher_name</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-47', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-comment"># that would make more sense ^, but it confuses openssh.</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">+=</tt> <tt class="py-string">'\0'</tt> <tt class="py-op">*</tt> <tt class="py-name">n</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">cipher</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-47', 'new', 'link-12');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encrypt</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-48', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'Proc-Type: 4,ENCRYPTED\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-49', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'DEK-Info: %s,%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cipher_name</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-50', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-comment"># re-wrap to 64-char lines</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-op">:</tt> <tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">64</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">64</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-48', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-49', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-50', 'write', 'link-34');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'-----END %s PRIVATE KEY-----\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-51', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-52', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-53', 'write', 'link-36');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'-----END %s PRIVATE KEY-----\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -518,7 +518,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.primes-module.html b/docs/paramiko.primes-module.html
index 8ce7a25..9dcef85 100644
--- a/docs/paramiko.primes-module.html
+++ b/docs/paramiko.primes-module.html
@@ -74,6 +74,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -100,7 +116,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.primes-pysrc.html b/docs/paramiko.primes-pysrc.html
index 41800d7..dee92dc 100644
--- a/docs/paramiko.primes-pysrc.html
+++ b/docs/paramiko.primes-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.primes-module.html" onclick="show_private();">Module paramiko.primes</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Utility functions for dealing with primes.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -87,7 +87,7 @@
<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-name">hbyte_mask</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">bits</tt> <tt class="py-op">%</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-comment"># loop catches the case where we increment n into a higher bit-range</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -127,12 +127,12 @@ paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">hbyte_mask</tt> <tt class="py-op">=</tt> <tt class="py-name">pow</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">bits</tt> <tt class="py-op">%</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-comment"># so here's the plan:</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># we fetch as many random bits as we'd need to fit N-1, and if the</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># generated number is &gt;= N, we try again. in the worst case (N-1 is a</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># power of 2), we have slightly better than 50% odds of getting one that</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># fits, so i can't guarantee that this loop will ever finish, but the odds</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># of it looping forever should be infinitesimal.</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-comment"># we fetch as many random bits as we'd need to fit N-1, and if the</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-comment"># generated number is &gt;= N, we try again. in the worst case (N-1 is a</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-comment"># power of 2), we have slightly better than 50% odds of getting one that</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># fits, so i can't guarantee that this loop will ever finish, but the odds</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-comment"># of it looping forever should be infinitesimal.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">rpool</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.Message.get_bytes
paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-13', 'get_bytes', 'link-6');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hbyte_mask</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
@@ -151,7 +151,7 @@ paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
<a name="ModulusPack.__init__"></a><div id="ModulusPack.__init__-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="ModulusPack.__init__-toggle" onclick="return toggle('ModulusPack.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes.ModulusPack-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">rpool</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="ModulusPack.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ModulusPack.__init__-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-comment"># pack is a hash of: bits -&gt; [ (generator, modulus) ... ]</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">discarded</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
@@ -185,19 +185,19 @@ paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-1
<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">modulus</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">modulus</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">)</tt> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-comment"># weed out primes that aren't at least:</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># type 2 (meets basic structural requirements)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># test 4 (more than just a small-prime sieve)</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># tries &lt; 100 if test &amp; 4 (at least 100 tries of miller-rabin)</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">mod_type</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">tries</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-comment"># type 2 (meets basic structural requirements)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-comment"># test 4 (more than just a small-prime sieve)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-comment"># tries &lt; 100 if test &amp; 4 (at least 100 tries of miller-rabin)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">mod_type</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">tests</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">tries</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">discarded</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">modulus</tt><tt class="py-op">,</tt> <tt class="py-string">'does not meet basic requirements'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">generator</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">generator</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-comment"># there's a bug in the ssh "moduli" file (yeah, i know: shock! dismay!</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># call cnn!) where it understates the bit lengths of these primes by 1.</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># this is okay.</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">bl</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-17', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-18', 'bit_length', 'link-10');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">modulus</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># call cnn!) where it understates the bit lengths of these primes by 1.</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-comment"># this is okay.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">bl</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-17', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-18', 'bit_length', 'link-10');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">modulus</tt><tt class="py-op">)</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">bl</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">bl</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">discarded</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">modulus</tt><tt class="py-op">,</tt> <tt class="py-string">'incorrectly reported bit length %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
@@ -239,24 +239,24 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-22" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-22', 'SSHException', 'link-4');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'no moduli available'</tt><tt class="py-op">)</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-comment"># find nearest bitsize &gt;= preferred</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">:</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">prefer</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">max</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">good</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">good</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-name">b</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-comment"># if that failed, find greatest bitsize &gt;= min</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">good</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">good</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">b</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">:</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">min</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">max</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">b</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">good</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-name">b</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">good</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-comment"># their entire (min, max) range has no intersection with our range.</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># if their range is below ours, pick the smallest. otherwise pick</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># the largest. it'll be out of their range requirement either way,</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># but we'll be sending them the closest one we have.</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-comment"># if their range is below ours, pick the smallest. otherwise pick</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-comment"># the largest. it'll be out of their range requirement either way,</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-comment"># but we'll be sending them the closest one we have.</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">min</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">good</tt><tt class="py-op">:</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">good</tt> <tt class="py-op">=</tt> <tt class="py-name">bitsizes</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-comment"># now pick a random modulus of this bitsize</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">_roll_random</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.auth_handler.randpool
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">_roll_random</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -311,7 +311,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.primes.ModulusPack-class.html b/docs/paramiko.primes.ModulusPack-class.html
index 6789760..7f7c2f0 100644
--- a/docs/paramiko.primes.ModulusPack-class.html
+++ b/docs/paramiko.primes.ModulusPack-class.html
@@ -131,6 +131,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -138,7 +139,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -245,7 +248,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.resource-module.html b/docs/paramiko.resource-module.html
index 2219925..ae3da65 100644
--- a/docs/paramiko.resource-module.html
+++ b/docs/paramiko.resource-module.html
@@ -71,6 +71,13 @@
<a name="ResourceManager"></a><span class="summary-name">ResourceManager</span> = <code title="ResourceManager()">ResourceManager()</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -98,7 +105,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.resource-pysrc.html b/docs/paramiko.resource-pysrc.html
index 86d5279..ef18bc3 100644
--- a/docs/paramiko.resource-pysrc.html
+++ b/docs/paramiko.resource-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.resource-module.html" onclick="show_private();">Module paramiko.resource</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-docstring">Resource manager.</tt> </tt>
<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -131,12 +131,12 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L64"></a><tt class="py-lineno">64</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_table</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt id="link-2" class="py-name"><a title="paramiko.resource" class="py-name" href="#" onclick="return doclink('link-2', 'resource', 'link-0');">resource</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
</div><a name="L65"></a><tt class="py-lineno">65</tt> <tt class="py-line"> </tt>
<a name="L66"></a><tt class="py-lineno">66</tt> <tt class="py-line"> <tt class="py-comment"># keep the weakref in a table so it sticks around long enough to get</tt> </tt>
-<a name="L67"></a><tt class="py-lineno">67</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># its callback called. :)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno">68</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_table</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt id="link-3" class="py-name"><a title="paramiko.resource" class="py-name" href="#" onclick="return doclink('link-3', 'resource', 'link-0');">resource</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">ref</tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">,</tt> <tt class="py-name">callback</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt> <tt class="py-line"> <tt class="py-comment"># its callback called. :)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_table</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt id="link-3" class="py-name"><a title="paramiko.resource" class="py-name" href="#" onclick="return doclink('link-3', 'resource', 'link-0');">resource</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">ref</tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">,</tt> <tt class="py-name">callback</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L69"></a><tt class="py-lineno">69</tt> <tt class="py-line"> </tt>
<a name="L70"></a><tt class="py-lineno">70</tt> <tt class="py-line"> </tt>
<a name="L71"></a><tt class="py-lineno">71</tt> <tt class="py-line"><tt class="py-comment"># singleton</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">72</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-4" class="py-name" targets="Variable paramiko.resource.ResourceManager=paramiko.resource-module.html#ResourceManager"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-4', 'ResourceManager', 'link-4');">ResourceManager</a></tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-5', 'ResourceManager', 'link-4');">ResourceManager</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">72</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable paramiko.resource.ResourceManager=paramiko.resource-module.html#ResourceManager"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-4', 'ResourceManager', 'link-4');">ResourceManager</a></tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="paramiko.resource.ResourceManager" class="py-name" href="#" onclick="return doclink('link-5', 'ResourceManager', 'link-4');">ResourceManager</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L73"></a><tt class="py-lineno">73</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -170,7 +170,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng-module.html b/docs/paramiko.rng-module.html
index bb81ec3..6cf9430 100644
--- a/docs/paramiko.rng-module.html
+++ b/docs/paramiko.rng-module.html
@@ -86,6 +86,13 @@
<a name="rng_device"></a><span class="summary-name">rng_device</span> = <code title="rng_posix.open_rng_device()">rng_posix.open_rng_device()</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -113,7 +120,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng-pysrc.html b/docs/paramiko.rng-pysrc.html
index 1e91cb8..4555c63 100644
--- a/docs/paramiko.rng-pysrc.html
+++ b/docs/paramiko.rng-pysrc.html
@@ -55,25 +55,25 @@
<h1 class="epydoc">Source Code for <a href="paramiko.rng-module.html" onclick="show_private();">Module paramiko.rng</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Util</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
@@ -108,24 +108,24 @@ paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-0
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">map</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">^</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## Find a strong random entropy source, depending on the detected platform.</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## WARNING TO DEVELOPERS: This will fail on some systems, but do NOT use</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## Crypto.Util.randpool.RandomPool as a fall-back. RandomPool will happily run</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## with very little entropy, thus _silently_ defeating any security that</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## Paramiko attempts to provide. (This is current as of PyCrypto 2.0.1).</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## See http://www.lag.net/pipermail/paramiko/2008-January/000599.html</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">## and http://www.lag.net/pipermail/paramiko/2008-April/000678.html</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">##</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment">## Find a strong random entropy source, depending on the detected platform.</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment">## WARNING TO DEVELOPERS: This will fail on some systems, but do NOT use</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-comment">## Crypto.Util.randpool.RandomPool as a fall-back. RandomPool will happily run</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-comment">## with very little entropy, thus _silently_ defeating any security that</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-comment">## Paramiko attempts to provide. (This is current as of PyCrypto 2.0.1).</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-comment">## See http://www.lag.net/pipermail/paramiko/2008-January/000599.html</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-comment">## and http://www.lag.net/pipermail/paramiko/2008-April/000678.html</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">platform</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">platform</tt><tt class="py-op">.</tt><tt class="py-name">system</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'windows'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">'win32'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-comment"># MS Windows</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-1', 'paramiko', 'link-1');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module paramiko.rng_win32=paramiko.rng_win32-module.html"><a title="paramiko.rng_win32" class="py-name" href="#" onclick="return doclink('link-2', 'rng_win32', 'link-2');">rng_win32</a></tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-1', 'paramiko', 'link-1');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module paramiko.rng_win32=paramiko.rng_win32-module.html"><a title="paramiko.rng_win32" class="py-name" href="#" onclick="return doclink('link-2', 'rng_win32', 'link-2');">rng_win32</a></tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt id="link-3" class="py-name" targets="Variable paramiko.rng.rng_device=paramiko.rng-module.html#rng_device"><a title="paramiko.rng.rng_device" class="py-name" href="#" onclick="return doclink('link-3', 'rng_device', 'link-3');">rng_device</a></tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name"><a title="paramiko.rng_win32" class="py-name" href="#" onclick="return doclink('link-4', 'rng_win32', 'link-2');">rng_win32</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Function paramiko.rng_posix.open_rng_device()=paramiko.rng_posix-module.html#open_rng_device,Function paramiko.rng_win32.open_rng_device()=paramiko.rng_win32-module.html#open_rng_device"><a title="paramiko.rng_posix.open_rng_device
paramiko.rng_win32.open_rng_device" class="py-name" href="#" onclick="return doclink('link-5', 'open_rng_device', 'link-5');">open_rng_device</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-comment"># Assume POSIX (any system where /dev/urandom exists)</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-6', 'paramiko', 'link-1');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module paramiko.rng_posix=paramiko.rng_posix-module.html"><a title="paramiko.rng_posix" class="py-name" href="#" onclick="return doclink('link-7', 'rng_posix', 'link-7');">rng_posix</a></tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-6', 'paramiko', 'link-1');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module paramiko.rng_posix=paramiko.rng_posix-module.html"><a title="paramiko.rng_posix" class="py-name" href="#" onclick="return doclink('link-7', 'rng_posix', 'link-7');">rng_posix</a></tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt id="link-8" class="py-name"><a title="paramiko.rng.rng_device" class="py-name" href="#" onclick="return doclink('link-8', 'rng_device', 'link-3');">rng_device</a></tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="paramiko.rng_posix" class="py-name" href="#" onclick="return doclink('link-9', 'rng_posix', 'link-7');">rng_posix</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="paramiko.rng_posix.open_rng_device
paramiko.rng_win32.open_rng_device" class="py-name" href="#" onclick="return doclink('link-10', 'open_rng_device', 'link-5');">open_rng_device</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
@@ -170,7 +170,7 @@ paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-1
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">=</tt> <tt id="link-12" class="py-name"><a title="paramiko.rng.rng_device" class="py-name" href="#" onclick="return doclink('link-12', 'rng_device', 'link-3');">rng_device</a></tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-comment"># Stir 256 bits of entropy from the RNG device into the RandomPool.</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.auth_handler.randpool
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -313,7 +313,7 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
</div></div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-comment"># vim:set ts=4 sw=4 sts=4 expandtab:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt><script type="text/javascript">
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -346,7 +346,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng.StrongLockingRandomPool-class.html b/docs/paramiko.rng.StrongLockingRandomPool-class.html
index a1d792a..845bde6 100644
--- a/docs/paramiko.rng.StrongLockingRandomPool-class.html
+++ b/docs/paramiko.rng.StrongLockingRandomPool-class.html
@@ -169,6 +169,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -176,7 +177,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -259,7 +262,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_posix-module.html b/docs/paramiko.rng_posix-module.html
index cb912ad..7697c55 100644
--- a/docs/paramiko.rng_posix-module.html
+++ b/docs/paramiko.rng_posix-module.html
@@ -96,6 +96,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -122,7 +138,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_posix-pysrc.html b/docs/paramiko.rng_posix-pysrc.html
index 108ba64..a116ea8 100644
--- a/docs/paramiko.rng_posix-pysrc.html
+++ b/docs/paramiko.rng_posix-pysrc.html
@@ -55,26 +55,26 @@
<h1 class="epydoc">Source Code for <a href="paramiko.rng_posix-module.html" onclick="show_private();">Module paramiko.rng_posix</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 Open Systems Canada Limited</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
-<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2008 Open Systems Canada Limited</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"> </tt>
<a name="L22"></a><tt class="py-lineno">22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
<a name="L23"></a><tt class="py-lineno">23</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Method paramiko.SFTPClient.stat()=paramiko.SFTPClient-class.html#stat,Method paramiko.SFTPFile.stat()=paramiko.SFTPFile-class.html#stat,Method paramiko.SFTPHandle.stat()=paramiko.SFTPHandle-class.html#stat,Method paramiko.SFTPServerInterface.stat()=paramiko.SFTPServerInterface-class.html#stat"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
@@ -119,28 +119,28 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L43"></a><tt class="py-lineno">43</tt> <tt class="py-line"> </tt>
<a name="L44"></a><tt class="py-lineno">44</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"> </tt>
<a name="L47"></a><tt class="py-lineno">47</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">device_path</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L48"></a><tt class="py-lineno">48</tt> <tt class="py-line"> <tt class="py-name">device_path</tt> <tt class="py-op">=</tt> <tt class="py-string">"/dev/urandom"</tt> </tt>
<a name="L49"></a><tt class="py-lineno">49</tt> <tt class="py-line"> </tt>
<a name="L50"></a><tt class="py-lineno">50</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L51"></a><tt class="py-lineno">51</tt> <tt class="py-line"> <tt class="py-comment"># Try to open /dev/urandom now so that paramiko will be able to access</tt> </tt>
-<a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># it even if os.chroot() is invoked later.</tt> </tt>
-<a name="L53"></a><tt class="py-lineno">53</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"> <tt class="py-comment"># it even if os.chroot() is invoked later.</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L54"></a><tt class="py-lineno">54</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-7', 'open', 'link-7');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">device_path</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno">55</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EnvironmentError</tt><tt class="py-op">:</tt> </tt>
<a name="L56"></a><tt class="py-lineno">56</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-8" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-8', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Unable to open /dev/urandom"</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno">57</tt> <tt class="py-line"> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt> <tt class="py-line"> </tt>
<a name="L58"></a><tt class="py-lineno">58</tt> <tt class="py-line"> <tt class="py-comment"># Open a second file descriptor for sanity checking later.</tt> </tt>
-<a name="L59"></a><tt class="py-lineno">59</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L60"></a><tt class="py-lineno">60</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-9', 'open', 'link-7');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">device_path</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
<a name="L61"></a><tt class="py-lineno">61</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EnvironmentError</tt><tt class="py-op">:</tt> </tt>
<a name="L62"></a><tt class="py-lineno">62</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-10" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-10', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Unable to open /dev/urandom"</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno">63</tt> <tt class="py-line"> </tt>
<a name="L64"></a><tt class="py-lineno">64</tt> <tt class="py-line"> <tt class="py-comment"># Check that /dev/urandom is a character special device, not a regular file.</tt> </tt>
-<a name="L65"></a><tt class="py-lineno">65</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fstat</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
+<a name="L65"></a><tt class="py-lineno">65</tt> <tt class="py-line"> <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fstat</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
paramiko.pipe.PosixPipe.fileno
paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-11', 'fileno', 'link-11');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># f</tt> </tt>
<a name="L66"></a><tt class="py-lineno">66</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-12" class="py-name"><a title="paramiko.SFTPClient.stat
@@ -152,7 +152,7 @@ paramiko.SFTPHandle.stat
paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-13', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISCHR</tt><tt class="py-op">(</tt><tt class="py-name">st</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L67"></a><tt class="py-lineno">67</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-14" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-14', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"/dev/urandom is not a character special device"</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno">68</tt> <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt> <tt class="py-line"> </tt>
<a name="L69"></a><tt class="py-lineno">69</tt> <tt class="py-line"> <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fstat</tt><tt class="py-op">(</tt><tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.Channel.fileno
paramiko.pipe.PosixPipe.fileno
paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-15', 'fileno', 'link-11');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># g</tt> </tt>
@@ -165,9 +165,9 @@ paramiko.SFTPHandle.stat
paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-17', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISCHR</tt><tt class="py-op">(</tt><tt class="py-name">st</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L71"></a><tt class="py-lineno">71</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-18" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-18', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"/dev/urandom is not a character special device"</tt><tt class="py-op">)</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">72</tt> <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno">72</tt> <tt class="py-line"> </tt>
<a name="L73"></a><tt class="py-lineno">73</tt> <tt class="py-line"> <tt class="py-comment"># Check that /dev/urandom always returns the number of bytes requested</tt> </tt>
-<a name="L74"></a><tt class="py-lineno">74</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.BufferedFile.read
+<a name="L74"></a><tt class="py-lineno">74</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-19', 'read', 'link-4');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
<a name="L75"></a><tt class="py-lineno">75</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="paramiko.BufferedFile.read
@@ -176,14 +176,14 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
<a name="L76"></a><tt class="py-lineno">76</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
<a name="L77"></a><tt class="py-lineno">77</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-21" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-21', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error reading from /dev/urandom: input truncated"</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno">78</tt> <tt class="py-line"> </tt>
+<a name="L78"></a><tt class="py-lineno">78</tt> <tt class="py-line"> </tt>
<a name="L79"></a><tt class="py-lineno">79</tt> <tt class="py-line"> <tt class="py-comment"># Check that different reads return different data</tt> </tt>
-<a name="L80"></a><tt class="py-lineno">80</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
<a name="L81"></a><tt class="py-lineno">81</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-22" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-22', 'error', 'link-8');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"/dev/urandom is broken; returning identical data: %r == %r"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L82"></a><tt class="py-lineno">82</tt> <tt class="py-line"> </tt>
<a name="L83"></a><tt class="py-lineno">83</tt> <tt class="py-line"> <tt class="py-comment"># Close the duplicate file object</tt> </tt>
-<a name="L84"></a><tt class="py-lineno">84</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.Agent.close
+<a name="L84"></a><tt class="py-lineno">84</tt> <tt class="py-line"> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -197,7 +197,7 @@ paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-23', 'close', 'link-6');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L85"></a><tt class="py-lineno">85</tt> <tt class="py-line"> </tt>
<a name="L86"></a><tt class="py-lineno">86</tt> <tt class="py-line"> <tt class="py-comment"># Return the first file object</tt> </tt>
-<a name="L87"></a><tt class="py-lineno">87</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">_RNG</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">87</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_RNG</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
<a name="L88"></a><tt class="py-lineno">88</tt> <tt class="py-line"> </tt>
<a name="L89"></a><tt class="py-lineno">89</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-24" class="py-name"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-24', 'error', 'link-8');">error</a></tt><tt class="py-op">:</tt> </tt>
@@ -230,7 +230,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L94"></a><tt class="py-lineno">94</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
</div><a name="L95"></a><tt class="py-lineno">95</tt> <tt class="py-line"> </tt>
<a name="L96"></a><tt class="py-lineno">96</tt> <tt class="py-line"><tt class="py-comment"># vim:set ts=4 sw=4 sts=4 expandtab:</tt> </tt>
-<a name="L97"></a><tt class="py-lineno">97</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt><script type="text/javascript">
+<a name="L97"></a><tt class="py-lineno">97</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -263,7 +263,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_posix.error-class.html b/docs/paramiko.rng_posix.error-class.html
index 6224757..73d00b0 100644
--- a/docs/paramiko.rng_posix.error-class.html
+++ b/docs/paramiko.rng_posix.error-class.html
@@ -84,15 +84,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -143,7 +148,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_win32-module.html b/docs/paramiko.rng_win32-module.html
index 3bbbfa8..55143af 100644
--- a/docs/paramiko.rng_win32-module.html
+++ b/docs/paramiko.rng_win32-module.html
@@ -95,6 +95,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -121,7 +137,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_win32-pysrc.html b/docs/paramiko.rng_win32-pysrc.html
index 450e713..c20c79b 100644
--- a/docs/paramiko.rng_win32-pysrc.html
+++ b/docs/paramiko.rng_win32-pysrc.html
@@ -55,37 +55,37 @@
<h1 class="epydoc">Source Code for <a href="paramiko.rng_win32-module.html">Module paramiko.rng_win32</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Copyright (C) 2008 Open Systems Canada Limited</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2008 Dwayne C. Litzenberger &lt;dlitz@dlitz.net&gt;</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2008 Open Systems Canada Limited</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-comment"># 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> </tt>
<a name="error"></a><div id="error-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="error-toggle" onclick="return toggle('error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.rng_win32.error-class.html">error</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="error-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="error-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div><a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-comment"># Try to import the "winrandom" module</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">winrandom</tt> <tt class="py-keyword">as</tt> <tt id="link-0" class="py-name" targets="Variable paramiko.rng_win32._winrandom=paramiko.rng_win32-module.html#_winrandom"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-0', '_winrandom', 'link-0');">_winrandom</a></tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt id="link-1" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-1', '_winrandom', 'link-0');">_winrandom</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-comment"># Try to import the "urandom" module</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">os</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urandom</tt> <tt class="py-keyword">as</tt> <tt class="py-name">_urandom</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-name">_urandom</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
@@ -99,11 +99,11 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
<a name="_RNG.randomize"></a><div id="_RNG.randomize-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="_RNG.randomize-toggle" onclick="return toggle('_RNG.randomize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_win32._RNG-class.html#randomize">randomize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="_RNG.randomize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_RNG.randomize-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-comment"># According to "Cryptanalysis of the Random Number Generator of the</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Windows Operating System", by Leo Dorrendorf and Zvi Gutterman</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># and Benny Pinkas &lt;http://eprint.iacr.org/2007/419&gt;,</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># CryptGenRandom only updates its internal state using kernel-provided</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># random data every 128KiB of output.</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="paramiko.BufferedFile.read
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-comment"># Windows Operating System", by Leo Dorrendorf and Zvi Gutterman</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-comment"># and Benny Pinkas &lt;http://eprint.iacr.org/2007/419&gt;,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-comment"># CryptGenRandom only updates its internal state using kernel-provided</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-comment"># random data every 128KiB of output.</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-3', 'read', 'link-2');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">128</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt><tt class="py-op">)</tt> <tt class="py-comment"># discard 128 KiB of output</tt> </tt>
</div></div><a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
@@ -113,88 +113,88 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-5', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Crypto.Util.winrandom module not found"</tt><tt class="py-op">)</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-comment"># Check that we can open the winrandom module</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">r0</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-6', '_winrandom', 'link-0');">_winrandom</a></tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">r1</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-7', '_winrandom', 'link-0');">_winrandom</a></tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">r0</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-6', '_winrandom', 'link-0');">_winrandom</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-7', 'new', 'link-7');">new</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">r1</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-8', '_winrandom', 'link-0');">_winrandom</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-9', 'new', 'link-7');">new</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-8" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-8', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom.new() failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-10" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-10', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom.new() failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># Check that we can read from the winrandom module</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">r0</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-9', 'get_bytes', 'link-9');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">r1</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-10', 'get_bytes', 'link-9');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">r0</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-11', 'get_bytes', 'link-11');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">r1</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-12', 'get_bytes', 'link-11');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-11" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-11', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom get_bytes failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-13" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-13', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom get_bytes failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-comment"># Check that the requested number of bytes are returned</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-12" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-12', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error reading from winrandom: input truncated"</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-14" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-14', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Error reading from winrandom: input truncated"</tt><tt class="py-op">)</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment"># Check that different reads return different data</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-13" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-13', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom broken: returning identical data"</tt><tt class="py-op">)</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-15" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-15', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"winrandom broken: returning identical data"</tt><tt class="py-op">)</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_RNG</tt><tt class="py-op">(</tt><tt class="py-name">r0</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-14', 'get_bytes', 'link-9');">get_bytes</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_RNG</tt><tt class="py-op">(</tt><tt class="py-name">r0</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-16', 'get_bytes', 'link-11');">get_bytes</a></tt><tt class="py-op">)</tt> </tt>
</div><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt>
<a name="_open_urandom"></a><div id="_open_urandom-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="_open_urandom-toggle" onclick="return toggle('_open_urandom');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_win32-module.html#_open_urandom">_open_urandom</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="_open_urandom-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_open_urandom-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_urandom</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-15" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-15', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom function not found"</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-17" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-17', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom function not found"</tt><tt class="py-op">)</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># Check that we can read from os.urandom()</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">_urandom</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">_urandom</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-16" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-16', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-18" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-18', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">)</tt> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-comment"># Check that the requested number of bytes are returned</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-17" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-17', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: input truncated"</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">20</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-19" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-19', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: input truncated"</tt><tt class="py-op">)</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-comment"># Check that different reads return different data</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-18" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-18', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: returning identical data"</tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-20" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-20', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"os.urandom failed: returning identical data"</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_RNG</tt><tt class="py-op">(</tt><tt class="py-name">_urandom</tt><tt class="py-op">)</tt> </tt>
</div><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
<a name="open_rng_device"></a><div id="open_rng_device-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="open_rng_device-toggle" onclick="return toggle('open_rng_device');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_win32-module.html#open_rng_device">open_rng_device</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="open_rng_device-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="open_rng_device-expanded"><a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># Try using the Crypto.Util.winrandom module</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_open_winrandom</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-19" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-19', 'error', 'link-5');">error</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-21" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-21', 'error', 'link-5');">error</a></tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># Several versions of PyCrypto do not contain the winrandom module, but</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Python &gt;= 2.4 has os.urandom, so try to use that.</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment"># Python &gt;= 2.4 has os.urandom, so try to use that.</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_open_urandom</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-20" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-20', 'error', 'link-5');">error</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-22" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-22', 'error', 'link-5');">error</a></tt><tt class="py-op">:</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-comment"># SECURITY NOTE: DO NOT USE Crypto.Util.randpool.RandomPool HERE!</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># If we got to this point, RandomPool will silently run with very little</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># entropy. (This is current as of PyCrypto 2.0.1).</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># See http://www.lag.net/pipermail/paramiko/2008-January/000599.html</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># and http://www.lag.net/pipermail/paramiko/2008-April/000678.html</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-21" class="py-name"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-21', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Unable to find a strong random entropy source. You cannot run this software securely under the current configuration."</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-comment"># If we got to this point, RandomPool will silently run with very little</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-comment"># entropy. (This is current as of PyCrypto 2.0.1).</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-comment"># See http://www.lag.net/pipermail/paramiko/2008-January/000599.html</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># and http://www.lag.net/pipermail/paramiko/2008-April/000678.html</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-23" class="py-name"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-23', 'error', 'link-5');">error</a></tt><tt class="py-op">(</tt><tt class="py-string">"Unable to find a strong random entropy source. You cannot run this software securely under the current configuration."</tt><tt class="py-op">)</tt> </tt>
</div><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-comment"># vim:set ts=4 sw=4 sts=4 expandtab:</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt><script type="text/javascript">
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -227,7 +227,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rng_win32.error-class.html b/docs/paramiko.rng_win32.error-class.html
index 6f5c6a7..cfe09e4 100644
--- a/docs/paramiko.rng_win32.error-class.html
+++ b/docs/paramiko.rng_win32.error-class.html
@@ -84,15 +84,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -143,7 +148,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rsakey-module.html b/docs/paramiko.rsakey-module.html
index 3c810da..a54d794 100644
--- a/docs/paramiko.rsakey-module.html
+++ b/docs/paramiko.rsakey-module.html
@@ -415,6 +415,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -502,7 +509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.rsakey-pysrc.html b/docs/paramiko.rsakey-pysrc.html
index 8e1c42b..d1dd96a 100644
--- a/docs/paramiko.rsakey-pysrc.html
+++ b/docs/paramiko.rsakey-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.rsakey-module.html" onclick="show_private();">Module paramiko.rsakey</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{RSAKey}</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -146,36 +146,36 @@ paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link
</div><div id="RSAKey.can_sign-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.can_sign-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="RSAKey.sign_ssh_data"></a><div id="RSAKey.sign_ssh_data-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="RSAKey.sign_ssh_data-toggle" onclick="return toggle('RSAKey.sign_ssh_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#sign_ssh_data">sign_ssh_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">rpool</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RSAKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.sign_ssh_data-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="RSAKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.sign_ssh_data-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-30', 'new', 'link-30');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">rsa</tt> <tt class="py-op">=</tt> <tt class="py-name">RSA</tt><tt class="py-op">.</tt><tt class="py-name">construct</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-30', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-31', 'deflate_long', 'link-31');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pkcs1imify</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-32', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-33', 'add_string', 'link-26');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-rsa'</tt><tt class="py-op">)</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-34', 'add_string', 'link-26');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-31', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-32', 'deflate_long', 'link-32');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">sign</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pkcs1imify</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-33', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-34', 'add_string', 'link-26');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-rsa'</tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-35', 'add_string', 'link-26');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
</div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
<a name="RSAKey.verify_ssh_sig"></a><div id="RSAKey.verify_ssh_sig-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="RSAKey.verify_ssh_sig-toggle" onclick="return toggle('RSAKey.verify_ssh_sig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#verify_ssh_sig">verify_ssh_sig</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RSAKey.verify_ssh_sig-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.verify_ssh_sig-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-35', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RSAKey.verify_ssh_sig-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.verify_ssh_sig-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-36', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-36', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-37', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-38', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-37', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-38', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-39', 'get_string', 'link-19');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-comment"># verify the signature by SHA'ing the data and encrypting it using the</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># public key. some wackiness ensues where we "pkcs1imify" the 20-byte</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># hash into a string as long as the RSA key.</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-39', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-40', 'inflate_long', 'link-37');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pkcs1imify</tt><tt class="py-op">(</tt><tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-comment"># public key. some wackiness ensues where we "pkcs1imify" the 20-byte</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-comment"># hash into a string as long as the RSA key.</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-40', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-41', 'inflate_long', 'link-38');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pkcs1imify</tt><tt class="py-op">(</tt><tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-42', 'new', 'link-30');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">rsa</tt> <tt class="py-op">=</tt> <tt class="py-name">RSA</tt><tt class="py-op">.</tt><tt class="py-name">construct</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">verify</tt><tt class="py-op">(</tt><tt class="py-name">hash_obj</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
<a name="RSAKey._encode_key"></a><div id="RSAKey._encode_key-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="RSAKey._encode_key-toggle" onclick="return toggle('RSAKey._encode_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#_encode_key">_encode_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="RSAKey._encode_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey._encode_key-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-41" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-41', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not enough key info to write private key file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-43" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-43', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not enough key info to write private key file'</tt><tt class="py-op">)</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-42', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Function paramiko.util.mod_inverse()=paramiko.util-module.html#mod_inverse"><a title="paramiko.util.mod_inverse" class="py-name" href="#" onclick="return doclink('link-43', 'mod_inverse', 'link-43');">mod_inverse</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt id="link-44" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-44', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Function paramiko.util.mod_inverse()=paramiko.util-module.html#mod_inverse"><a title="paramiko.util.mod_inverse" class="py-name" href="#" onclick="return doclink('link-45', 'mod_inverse', 'link-45');">mod_inverse</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-44', 'BER', 'link-9');">BER</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-45', 'encode', 'link-45');">encode</a></tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-46" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-46', 'BERException', 'link-10');">BERException</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-47" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-47', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to create ber encoding of key'</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-46', 'BER', 'link-9');">BER</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-47', 'encode', 'link-47');">encode</a></tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-48" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-48', 'BERException', 'link-10');">BERException</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-49" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-49', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to create ber encoding of key'</tt><tt class="py-op">)</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
</div><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> </tt>
<a name="RSAKey.write_private_key_file"></a><div id="RSAKey.write_private_key_file-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="RSAKey.write_private_key_file-toggle" onclick="return toggle('RSAKey.write_private_key_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#write_private_key_file">write_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -197,7 +197,7 @@ paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> @return: new private key</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{RSAKey}</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt id="link-48" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt id="link-50" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -217,9 +217,9 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-48', 'randpool', 'link-48');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-49', 'stir', 'link-49');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">rsa</tt> <tt class="py-op">=</tt> <tt class="py-name">RSA</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Static Method paramiko.DSSKey.generate()=paramiko.DSSKey-class.html#generate,Static Method paramiko.RSAKey.generate()=paramiko.RSAKey-class.html#generate"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-50', 'generate', 'link-50');">generate</a></tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">,</tt> <tt id="link-51" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-50', 'randpool', 'link-50');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-51', 'stir', 'link-51');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">rsa</tt> <tt class="py-op">=</tt> <tt class="py-name">RSA</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Static Method paramiko.DSSKey.generate()=paramiko.DSSKey-class.html#generate,Static Method paramiko.RSAKey.generate()=paramiko.RSAKey-class.html#generate"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-52', 'generate', 'link-52');">generate</a></tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">,</tt> <tt id="link-53" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -239,20 +239,20 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-51', 'randpool', 'link-48');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-52', 'get_bytes', 'link-52');">get_bytes</a></tt><tt class="py-op">,</tt> <tt class="py-name">progress_func</tt><tt class="py-op">)</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-53', 'RSAKey', 'link-53');">RSAKey</a></tt><tt class="py-op">(</tt><tt class="py-name">vals</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-53', 'randpool', 'link-50');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-54', 'get_bytes', 'link-54');">get_bytes</a></tt><tt class="py-op">,</tt> <tt class="py-name">progress_func</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-55', 'RSAKey', 'link-55');">RSAKey</a></tt><tt class="py-op">(</tt><tt class="py-name">vals</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">rsa</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-54', 'generate', 'link-50');">generate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-55" class="py-name"><a title="paramiko.DSSKey.generate
-paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-55', 'generate', 'link-50');">generate</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-56', 'generate', 'link-52');">generate</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="paramiko.DSSKey.generate
+paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link-57', 'generate', 'link-52');">generate</a></tt><tt class="py-op">)</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> </tt>
<a name="RSAKey._pkcs1imify"></a><div id="RSAKey._pkcs1imify-def"><a name="L153"></a><tt class="py-lineno">153</tt> <a class="py-toggle" href="#" id="RSAKey._pkcs1imify-toggle" onclick="return toggle('RSAKey._pkcs1imify');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#_pkcs1imify">_pkcs1imify</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="RSAKey._pkcs1imify-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey._pkcs1imify-expanded"><a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -260,7 +260,7 @@ paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link
<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> using PKCS1's \"emsa-pkcs1-v1_5\" encoding. totally bizarre.</tt> </tt>
<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">SHA1_DIGESTINFO</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14'</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-56', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-57', 'deflate_long', 'link-31');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-58', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-59', 'deflate_long', 'link-32');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">filler</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">SHA1_DIGESTINFO</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'\x00\x01'</tt> <tt class="py-op">+</tt> <tt class="py-name">filler</tt> <tt class="py-op">+</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">+</tt> <tt class="py-name">SHA1_DIGESTINFO</tt> <tt class="py-op">+</tt> <tt class="py-name">data</tt> </tt>
</div><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> </tt>
@@ -274,20 +274,20 @@ paramiko.RSAKey.generate" class="py-name" href="#" onclick="return doclink('link
</div><a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> </tt>
<a name="RSAKey._decode_key"></a><div id="RSAKey._decode_key-def"><a name="L171"></a><tt class="py-lineno">171</tt> <a class="py-toggle" href="#" id="RSAKey._decode_key-toggle" onclick="return toggle('RSAKey._decode_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#_decode_key">_decode_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="RSAKey._decode_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey._decode_key-expanded"><a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-comment"># private key file contains:</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># RSAPrivateKey = { version = 0, n, e, d, p, q, d mod p-1, d mod q-1, q**-1 mod p }</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-58', 'BER', 'link-9');">BER</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-59', 'decode', 'link-59');">decode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-60" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-60', 'BERException', 'link-10');">BERException</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-61" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-61', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to parse key file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment"># RSAPrivateKey = { version = 0, n, e, d, p, q, d mod p-1, d mod q-1, q**-1 mod p }</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-60', 'BER', 'link-9');">BER</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-61', 'decode', 'link-61');">decode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-62" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-62', 'BERException', 'link-10');">BERException</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-63" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-63', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to parse key file'</tt><tt class="py-op">)</tt> </tt>
<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-62', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not a valid RSA private key file (bad ber encoding)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-64" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-64', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Not a valid RSA private key file (bad ber encoding)'</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-comment"># not really needed</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">keylist</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">]</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-63', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-64', 'bit_length', 'link-24');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-65', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-66', 'bit_length', 'link-24');">bit_length</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -321,7 +321,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.server-module.html b/docs/paramiko.server-module.html
index 7f452ac..9418c7e 100644
--- a/docs/paramiko.server-module.html
+++ b/docs/paramiko.server-module.html
@@ -417,6 +417,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -504,7 +511,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.server-pysrc.html b/docs/paramiko.server-pysrc.html
index 56ce4b9..af1de27 100644
--- a/docs/paramiko.server-pysrc.html
+++ b/docs/paramiko.server-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.server-module.html" onclick="show_private();">Module paramiko.server</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{ServerInterface} is an interface to override for server support.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -524,7 +524,7 @@ paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-comment">### Channel requests</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> </tt>
<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> </tt>
<a name="ServerInterface.check_channel_pty_request"></a><div id="ServerInterface.check_channel_pty_request-def"><a name="L351"></a><tt class="py-lineno">351</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_pty_request-toggle" onclick="return toggle('ServerInterface.check_channel_pty_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_channel_pty_request">check_channel_pty_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-param">term</tt><tt class="py-op">,</tt> <tt class="py-param">width</tt><tt class="py-op">,</tt> <tt class="py-param">height</tt><tt class="py-op">,</tt> <tt class="py-param">pixelwidth</tt><tt class="py-op">,</tt> <tt class="py-param">pixelheight</tt><tt class="py-op">,</tt> </tt>
<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-param">modes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -768,7 +768,7 @@ paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED" class="py-name" href="#"
<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"><tt class="py-docstring"> subsystem</tt> </tt>
<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"><tt class="py-docstring"> @type server: L{ServerInterface}</tt> </tt>
<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -809,6 +809,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-18', '__init__', 'link-18');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">target</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_run</tt><tt class="py-op">)</tt> </tt>
<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__channel</tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-19', 'channel', 'link-12');">channel</a></tt> </tt>
@@ -984,7 +985,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:38 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:19 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp-module.html b/docs/paramiko.sftp-module.html
index f65cd15..a27c924 100644
--- a/docs/paramiko.sftp-module.html
+++ b/docs/paramiko.sftp-module.html
@@ -737,6 +737,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -876,7 +883,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp-pysrc.html b/docs/paramiko.sftp-pysrc.html
index a1b987c..c948e27 100644
--- a/docs/paramiko.sftp-pysrc.html
+++ b/docs/paramiko.sftp-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp-module.html" onclick="show_private();">Module paramiko.sftp</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">select</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">socket</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt> </tt>
@@ -372,7 +372,7 @@ paramiko.sftp_si.SFTP_FLAG_EXCL" class="py-name" href="#" onclick="return doclin
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-comment"># for debugging</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-54" class="py-name" targets="Variable paramiko.sftp.CMD_NAMES=paramiko.sftp-module.html#CMD_NAMES,Variable paramiko.sftp_attr.CMD_NAMES=paramiko.sftp_attr-module.html#CMD_NAMES,Variable paramiko.sftp_client.CMD_NAMES=paramiko.sftp_client-module.html#CMD_NAMES,Variable paramiko.sftp_file.CMD_NAMES=paramiko.sftp_file-module.html#CMD_NAMES,Variable paramiko.sftp_handle.CMD_NAMES=paramiko.sftp_handle-module.html#CMD_NAMES,Variable paramiko.sftp_server.CMD_NAMES=paramiko.sftp_server-module.html#CMD_NAMES,Variable paramiko.sftp_si.CMD_NAMES=paramiko.sftp_si-module.html#CMD_NAMES"><a title="paramiko.sftp.CMD_NAMES
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt id="link-54" class="py-name" targets="Variable paramiko.sftp.CMD_NAMES=paramiko.sftp-module.html#CMD_NAMES,Variable paramiko.sftp_attr.CMD_NAMES=paramiko.sftp_attr-module.html#CMD_NAMES,Variable paramiko.sftp_client.CMD_NAMES=paramiko.sftp_client-module.html#CMD_NAMES,Variable paramiko.sftp_file.CMD_NAMES=paramiko.sftp_file-module.html#CMD_NAMES,Variable paramiko.sftp_handle.CMD_NAMES=paramiko.sftp_handle-module.html#CMD_NAMES,Variable paramiko.sftp_server.CMD_NAMES=paramiko.sftp_server-module.html#CMD_NAMES,Variable paramiko.sftp_si.CMD_NAMES=paramiko.sftp_si-module.html#CMD_NAMES"><a title="paramiko.sftp.CMD_NAMES
paramiko.sftp_attr.CMD_NAMES
paramiko.sftp_client.CMD_NAMES
paramiko.sftp_file.CMD_NAMES
@@ -583,7 +583,7 @@ paramiko.sftp_si.CMD_EXTENDED_REPLY" class="py-name" href="#" onclick="return do
</div><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt>
<a name="BaseSFTP._send_version"></a><div id="BaseSFTP._send_version-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="BaseSFTP._send_version-toggle" onclick="return toggle('BaseSFTP._send_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html#_send_version">_send_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BaseSFTP._send_version-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._send_version-expanded"><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name"><a title="paramiko.sftp.CMD_INIT
@@ -604,13 +604,13 @@ paramiko.sftp_si.CMD_VERSION" class="py-name" href="#" onclick="return doclink('
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-88" class="py-name" targets="Class paramiko.SFTPError=paramiko.SFTPError-class.html"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-88', 'SFTPError', 'link-88');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible sftp protocol'</tt><tt class="py-op">)</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-comment"># if version != _VERSION:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># raise SFTPError('Incompatible sftp protocol')</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">version</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-comment"># raise SFTPError('Incompatible sftp protocol')</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">version</tt> </tt>
</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
<a name="BaseSFTP._send_server_version"></a><div id="BaseSFTP._send_server_version-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="BaseSFTP._send_server_version-toggle" onclick="return toggle('BaseSFTP._send_server_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html#_send_server_version">_send_server_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BaseSFTP._send_server_version-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._send_server_version-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># winscp will freak out if the server sends version info before the</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># client finishes sending INIT.</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_packet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-comment"># client finishes sending INIT.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_packet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-89" class="py-name"><a title="paramiko.sftp.CMD_INIT
paramiko.sftp_attr.CMD_INIT
paramiko.sftp_client.CMD_INIT
@@ -621,7 +621,7 @@ paramiko.sftp_si.CMD_INIT" class="py-name" href="#" onclick="return doclink('lin
<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-90" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-90', 'SFTPError', 'link-88');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible sftp protocol'</tt><tt class="py-op">)</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-comment"># advertise that we support "check-file"</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">extension_pairs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'check-file'</tt><tt class="py-op">,</tt> <tt class="py-string">'md5,sha1'</tt> <tt class="py-op">]</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">extension_pairs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'check-file'</tt><tt class="py-op">,</tt> <tt class="py-string">'md5,sha1'</tt> <tt class="py-op">]</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-91', 'Message', 'link-9');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-92', 'add_int', 'link-92');">add_int</a></tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="paramiko.sftp._VERSION" class="py-name" href="#" onclick="return doclink('link-93', '_VERSION', 'link-53');">_VERSION</a></tt><tt class="py-op">)</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
@@ -654,11 +654,11 @@ paramiko.win_pageant.PageantConnection.send" class="py-name" href="#" onclick="r
<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-comment"># sometimes sftp is used directly over a socket instead of</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># through a paramiko channel. in this case, check periodically</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># if the socket is closed. (for some reason, recv() won't ever</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># return or raise an exception, but calling select on a closed</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># socket will.)</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-comment"># through a paramiko channel. in this case, check periodically</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-comment"># if the socket is closed. (for some reason, recv() won't ever</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-comment"># return or raise an exception, but calling select on a closed</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-comment"># socket will.)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt id="link-99" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-99', 'read', 'link-99');">read</a></tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
@@ -681,7 +681,7 @@ paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="r
</div><a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> </tt>
<a name="BaseSFTP._send_packet"></a><div id="BaseSFTP._send_packet-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="BaseSFTP._send_packet-toggle" onclick="return toggle('BaseSFTP._send_packet');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html#_send_packet">_send_packet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">packet</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BaseSFTP._send_packet-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._send_packet-expanded"><a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-comment">#self._log(DEBUG2, 'write: %s (len=%d)' % (CMD_NAMES.get(t, '0x%02x' % t), len(packet)))</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-104" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-104', 'packet', 'link-104');">packet</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-105" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-105', 'packet', 'link-104');">packet</a></tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-104" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-104', 'packet', 'link-104');">packet</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-105" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-105', 'packet', 'link-104');">packet</a></tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt><tt class="py-op">:</tt> </tt>
<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-106" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
@@ -710,8 +710,8 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-106'
<a name="BaseSFTP._read_packet"></a><div id="BaseSFTP._read_packet-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="BaseSFTP._read_packet-toggle" onclick="return toggle('BaseSFTP._read_packet');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html#_read_packet">_read_packet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BaseSFTP._read_packet-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._read_packet-expanded"><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_all</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-comment"># most sftp servers won't accept packets larger than about 32k, so</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># anything with the high byte set (&gt; 16MB) is just garbage.</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\x00'</tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-comment"># anything with the high byte set (&gt; 16MB) is just garbage.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\x00'</tt><tt class="py-op">:</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-109" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-109', 'SFTPError', 'link-88');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Garbage packet received'</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_all</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">)</tt> </tt>
@@ -741,7 +741,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-110'
<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">size</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-comment">#self._log(DEBUG2, 'read: %s (len=%d)' % (CMD_NAMES.get(t), '0x%02x' % t, len(data)-1))</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt> </tt>
</div></div><a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
@@ -776,7 +776,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:38 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:21 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_attr-module.html b/docs/paramiko.sftp_attr-module.html
index f13bc2f..fe77270 100644
--- a/docs/paramiko.sftp_attr-module.html
+++ b/docs/paramiko.sftp_attr-module.html
@@ -737,6 +737,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -876,7 +883,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_attr-pysrc.html b/docs/paramiko.sftp_attr-pysrc.html
index b1f7411..b1a55b1 100644
--- a/docs/paramiko.sftp_attr-pysrc.html
+++ b/docs/paramiko.sftp_attr-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_attr-module.html" onclick="show_private();">Module paramiko.sftp_attr</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2006 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2006 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Method paramiko.SFTPClient.stat()=paramiko.SFTPClient-class.html#stat,Method paramiko.SFTPFile.stat()=paramiko.SFTPFile-class.html#stat,Method paramiko.SFTPHandle.stat()=paramiko.SFTPHandle-class.html#stat,Method paramiko.SFTPServerInterface.stat()=paramiko.SFTPServerInterface-class.html#stat"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
@@ -147,7 +147,7 @@ paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return docl
</div><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
<a name="SFTPAttributes._from_msg"></a><div id="SFTPAttributes._from_msg-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="SFTPAttributes._from_msg-toggle" onclick="return toggle('SFTPAttributes._from_msg');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#_from_msg">_from_msg</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">longname</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPAttributes._from_msg-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes._from_msg-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -198,7 +198,7 @@ paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return docl
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-39', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt><tt class="py-op">)</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_AMTIME" class="py-name" href="#" onclick="return doclink('link-40', 'FLAG_AMTIME', 'link-8');">FLAG_AMTIME</a></tt><tt class="py-op">:</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-comment"># throw away any fractional seconds</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-41', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-41', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-42', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_EXTENDED" class="py-name" href="#" onclick="return doclink('link-43', 'FLAG_EXTENDED', 'link-9');">FLAG_EXTENDED</a></tt><tt class="py-op">:</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-44', 'add_int', 'link-32');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -292,19 +292,19 @@ paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return docl
<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'?---------'</tt> </tt>
<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-comment"># compute display date</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-op">==</tt> <tt class="py-number">0xffffffff</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-op">==</tt> <tt class="py-number">0xffffffff</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-comment"># shouldn't really happen</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">datestr</tt> <tt class="py-op">=</tt> <tt class="py-string">'(unknown date)'</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">datestr</tt> <tt class="py-op">=</tt> <tt class="py-string">'(unknown date)'</tt> </tt>
<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">15552000</tt><tt class="py-op">:</tt> </tt>
<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment"># (15552000 = 6 months)</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">datestr</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%d %b %Y'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">localtime</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-name">datestr</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%d %b %Y'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">localtime</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">datestr</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%d %b %H:%M'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">localtime</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'filename'</tt><tt class="py-op">,</tt> <tt class="py-string">'?'</tt><tt class="py-op">)</tt> </tt>
<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> </tt>
<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-comment"># not all servers support uid/gid</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">uid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">uid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</tt> </tt>
<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">gid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> </tt>
<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">uid</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">uid</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
@@ -345,7 +345,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:33 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_client-module.html b/docs/paramiko.sftp_client-module.html
index 8f975d6..a567486 100644
--- a/docs/paramiko.sftp_client-module.html
+++ b/docs/paramiko.sftp_client-module.html
@@ -739,6 +739,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -878,7 +885,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_client-pysrc.html b/docs/paramiko.sftp_client-pysrc.html
index 0b17480..cb1c6ea 100644
--- a/docs/paramiko.sftp_client-pysrc.html
+++ b/docs/paramiko.sftp_client-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_client-module.html" onclick="show_private();">Module paramiko.sftp_client</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Client-mode SFTP support.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -79,52 +79,56 @@
<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">binascii</tt> <tt class="py-keyword">import</tt> <tt class="py-name">hexlify</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">errno</tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">weakref</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-0', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module paramiko.sftp=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-1', 'sftp', 'link-1');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-2', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module paramiko.sftp_attr=paramiko.sftp_attr-module.html"><a title="paramiko.sftp_attr" class="py-name" href="#" onclick="return doclink('link-3', 'sftp_attr', 'link-3');">sftp_attr</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SFTPAttributes=paramiko.SFTPAttributes-class.html"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-4', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-5', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Module paramiko.ssh_exception=paramiko.ssh_exception-module.html"><a title="paramiko.ssh_exception" class="py-name" href="#" onclick="return doclink('link-6', 'ssh_exception', 'link-6');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-7', 'SSHException', 'link-7');">SSHException</a></tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-8', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module paramiko.sftp_file=paramiko.sftp_file-module.html"><a title="paramiko.sftp_file" class="py-name" href="#" onclick="return doclink('link-9', 'sftp_file', 'link-9');">sftp_file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class paramiko.SFTPFile=paramiko.SFTPFile-class.html"><a title="paramiko.SFTPFile" class="py-name" href="#" onclick="return doclink('link-10', 'SFTPFile', 'link-10');">SFTPFile</a></tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Method paramiko.SFTPClient.stat()=paramiko.SFTPClient-class.html#stat,Method paramiko.SFTPFile.stat()=paramiko.SFTPFile-class.html#stat,Method paramiko.SFTPHandle.stat()=paramiko.SFTPHandle-class.html#stat,Method paramiko.SFTPServerInterface.stat()=paramiko.SFTPServerInterface-class.html#stat"><a title="paramiko.SFTPClient.stat
+paramiko.SFTPFile.stat
+paramiko.SFTPHandle.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-0', 'stat', 'link-0');">stat</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">weakref</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-1', 'paramiko', 'link-1');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module paramiko.sftp=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-2', 'sftp', 'link-2');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-3', 'paramiko', 'link-1');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module paramiko.sftp_attr=paramiko.sftp_attr-module.html"><a title="paramiko.sftp_attr" class="py-name" href="#" onclick="return doclink('link-4', 'sftp_attr', 'link-4');">sftp_attr</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class paramiko.SFTPAttributes=paramiko.SFTPAttributes-class.html"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-5', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-6', 'paramiko', 'link-1');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Module paramiko.ssh_exception=paramiko.ssh_exception-module.html"><a title="paramiko.ssh_exception" class="py-name" href="#" onclick="return doclink('link-7', 'ssh_exception', 'link-7');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-8', 'SSHException', 'link-8');">SSHException</a></tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-9', 'paramiko', 'link-1');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Module paramiko.sftp_file=paramiko.sftp_file-module.html"><a title="paramiko.sftp_file" class="py-name" href="#" onclick="return doclink('link-10', 'sftp_file', 'link-10');">sftp_file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name" targets="Class paramiko.SFTPFile=paramiko.SFTPFile-class.html"><a title="paramiko.SFTPFile" class="py-name" href="#" onclick="return doclink('link-11', 'SFTPFile', 'link-11');">SFTPFile</a></tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt>
-<a name="_to_unicode"></a><div id="_to_unicode-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="_to_unicode-toggle" onclick="return toggle('_to_unicode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client-module.html#_to_unicode">_to_unicode</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_to_unicode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_to_unicode-expanded"><a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> decode a string as ascii or utf8 if possible (as required by the sftp</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> protocol). if neither works, just return a byte string because the server</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> probably doesn't know the filename's encoding.</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-11', 'encode', 'link-11');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-12', 'decode', 'link-12');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
-</div><a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient"></a><div id="SFTPClient-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="SFTPClient-toggle" onclick="return toggle('SFTPClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html">SFTPClient</a> <tt class="py-op">(</tt><tt class="py-base-class">BaseSFTP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPClient-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> SFTP client object. C{SFTPClient} is used to open an sftp session across</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> an open ssh L{Transport} and do remote file operations.</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.__init__"></a><div id="SFTPClient.__init__-def"><a name="L57"></a><tt class="py-lineno"> 57</tt> <a class="py-toggle" href="#" id="SFTPClient.__init__-toggle" onclick="return toggle('SFTPClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sock</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.__init__-expanded"><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client from an existing L{Channel}. The channel</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> should already have requested the C{"sftp"} subsystem.</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> An alternate way to create an SFTP client context is by using</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> L{from_transport}.</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> @param sock: an open L{Channel} using the C{"sftp"} subsystem</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> @type sock: L{Channel}</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there's an exception while negotiating</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> sftp</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">BaseSFTP</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
+<a name="_to_unicode"></a><div id="_to_unicode-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="_to_unicode-toggle" onclick="return toggle('_to_unicode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client-module.html#_to_unicode">_to_unicode</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_to_unicode-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_to_unicode-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> decode a string as ascii or utf8 if possible (as required by the sftp</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> protocol). if neither works, just return a byte string because the server</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> probably doesn't know the filename's encoding.</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.ber.BER.encode()=paramiko.ber.BER-class.html#encode"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-12', 'encode', 'link-12');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.ber.BER.decode()=paramiko.ber.BER-class.html#decode"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-13', 'decode', 'link-13');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient"></a><div id="SFTPClient-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="SFTPClient-toggle" onclick="return toggle('SFTPClient');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html">SFTPClient</a> <tt class="py-op">(</tt><tt class="py-base-class">BaseSFTP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPClient-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> SFTP client object. C{SFTPClient} is used to open an sftp session across</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> an open ssh L{Transport} and do remote file operations.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.__init__"></a><div id="SFTPClient.__init__-def"><a name="L58"></a><tt class="py-lineno"> 58</tt> <a class="py-toggle" href="#" id="SFTPClient.__init__-toggle" onclick="return toggle('SFTPClient.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sock</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.__init__-expanded"><a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client from an existing L{Channel}. The channel</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> should already have requested the C{"sftp"} subsystem.</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> An alternate way to create an SFTP client context is by using</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> L{from_transport}.</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> @param sock: an open L{Channel} using the C{"sftp"} subsystem</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"> @type sock: L{Channel}</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there's an exception while negotiating</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> sftp</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">BaseSFTP</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -165,27 +169,28 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
-paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-13', '__init__', 'link-13');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-comment"># lock for request_number</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-comment"># request # -&gt; SFTPFile</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">WeakValueDictionary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt id="link-14" class="py-name" targets="Class paramiko.Channel=paramiko.Channel-class.html"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-14', 'Channel', 'link-14');">Channel</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-comment"># override default logger</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-15" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-15', 'transport', 'link-15');">transport</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.Channel.get_transport()=paramiko.Channel-class.html#get_transport,Method paramiko.SSHClient.get_transport()=paramiko.SSHClient-class.html#get_transport"><a title="paramiko.Channel.get_transport
-paramiko.SSHClient.get_transport" class="py-name" href="#" onclick="return doclink('link-16', 'get_transport', 'link-16');">get_transport</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Class paramiko.logging22.logger=paramiko.logging22.logger-class.html"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-17', 'logger', 'link-17');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-18', 'util', 'link-18');">util</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Function paramiko.util.get_logger()=paramiko.util-module.html#get_logger"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-19', 'get_logger', 'link-19');">get_logger</a></tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-20', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method paramiko.Transport.get_log_channel()=paramiko.Transport-class.html#get_log_channel"><a title="paramiko.Transport.get_log_channel" class="py-name" href="#" onclick="return doclink('link-21', 'get_log_channel', 'link-21');">get_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'.sftp'</tt><tt class="py-op">)</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-22', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method paramiko.Transport.get_hexdump()=paramiko.Transport-class.html#get_hexdump"><a title="paramiko.Transport.get_hexdump" class="py-name" href="#" onclick="return doclink('link-23', 'get_hexdump', 'link-23');">get_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">server_version</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_version</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-24" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-24', 'SSHException', 'link-7');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'EOF during negotiation'</tt><tt class="py-op">)</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-25" class="py-name" targets="Variable paramiko.auth_handler.INFO=paramiko.auth_handler-module.html#INFO,Variable paramiko.channel.INFO=paramiko.channel-module.html#INFO,Variable paramiko.client.INFO=paramiko.client-module.html#INFO,Variable paramiko.common.INFO=paramiko.common-module.html#INFO,Variable paramiko.dsskey.INFO=paramiko.dsskey-module.html#INFO,Variable paramiko.hostkeys.INFO=paramiko.hostkeys-module.html#INFO,Variable paramiko.kex_gex.INFO=paramiko.kex_gex-module.html#INFO,Variable paramiko.kex_group1.INFO=paramiko.kex_group1-module.html#INFO,Variable paramiko.logging22.INFO=paramiko.logging22-module.html#INFO,Variable paramiko.packet.INFO=paramiko.packet-module.html#INFO,Variable paramiko.pkey.INFO=paramiko.pkey-module.html#INFO,Variable paramiko.rsakey.INFO=paramiko.rsakey-module.html#INFO,Variable paramiko.server.INFO=paramiko.server-module.html#INFO,Variable paramiko.sftp.INFO=paramiko.sftp-module.html#INFO,Variable paramiko.sftp_attr.INFO=paramiko.sftp_attr-module.html#INFO,Variable paramiko.sftp_client.INFO=paramiko.sftp_client-module.html#INFO,Variable paramiko.sftp_file.INFO=paramiko.sftp_file-module.html#INFO,Variable paramiko.sftp_handle.INFO=paramiko.sftp_handle-module.html#INFO,Variable paramiko.sftp_server.INFO=paramiko.sftp_server-module.html#INFO,Variable paramiko.sftp_si.INFO=paramiko.sftp_si-module.html#INFO,Variable paramiko.transport.INFO=paramiko.transport-module.html#INFO,Variable paramiko.util.INFO=paramiko.util-module.html#INFO"><a title="paramiko.auth_handler.INFO
+paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-14', '__init__', 'link-14');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-comment"># lock for request_number</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># request # -&gt; SFTPFile</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">WeakValueDictionary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt id="link-15" class="py-name" targets="Class paramiko.Channel=paramiko.Channel-class.html"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-15', 'Channel', 'link-15');">Channel</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># override default logger</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-16" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-16', 'transport', 'link-16');">transport</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method paramiko.Channel.get_transport()=paramiko.Channel-class.html#get_transport,Method paramiko.SSHClient.get_transport()=paramiko.SSHClient-class.html#get_transport"><a title="paramiko.Channel.get_transport
+paramiko.SSHClient.get_transport" class="py-name" href="#" onclick="return doclink('link-17', 'get_transport', 'link-17');">get_transport</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Class paramiko.logging22.logger=paramiko.logging22.logger-class.html"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-18', 'logger', 'link-18');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-19', 'util', 'link-19');">util</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Function paramiko.util.get_logger()=paramiko.util-module.html#get_logger"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-20', 'get_logger', 'link-20');">get_logger</a></tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-21', 'transport', 'link-16');">transport</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method paramiko.Transport.get_log_channel()=paramiko.Transport-class.html#get_log_channel"><a title="paramiko.Transport.get_log_channel" class="py-name" href="#" onclick="return doclink('link-22', 'get_log_channel', 'link-22');">get_log_channel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'.sftp'</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-23', 'transport', 'link-16');">transport</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method paramiko.Transport.get_hexdump()=paramiko.Transport-class.html#get_hexdump"><a title="paramiko.Transport.get_hexdump" class="py-name" href="#" onclick="return doclink('link-24', 'get_hexdump', 'link-24');">get_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">server_version</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_version</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-25" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-25', 'SSHException', 'link-8');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'EOF during negotiation'</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name" targets="Variable paramiko.auth_handler.INFO=paramiko.auth_handler-module.html#INFO,Variable paramiko.channel.INFO=paramiko.channel-module.html#INFO,Variable paramiko.client.INFO=paramiko.client-module.html#INFO,Variable paramiko.common.INFO=paramiko.common-module.html#INFO,Variable paramiko.dsskey.INFO=paramiko.dsskey-module.html#INFO,Variable paramiko.hostkeys.INFO=paramiko.hostkeys-module.html#INFO,Variable paramiko.kex_gex.INFO=paramiko.kex_gex-module.html#INFO,Variable paramiko.kex_group1.INFO=paramiko.kex_group1-module.html#INFO,Variable paramiko.logging22.INFO=paramiko.logging22-module.html#INFO,Variable paramiko.packet.INFO=paramiko.packet-module.html#INFO,Variable paramiko.pkey.INFO=paramiko.pkey-module.html#INFO,Variable paramiko.rsakey.INFO=paramiko.rsakey-module.html#INFO,Variable paramiko.server.INFO=paramiko.server-module.html#INFO,Variable paramiko.sftp.INFO=paramiko.sftp-module.html#INFO,Variable paramiko.sftp_attr.INFO=paramiko.sftp_attr-module.html#INFO,Variable paramiko.sftp_client.INFO=paramiko.sftp_client-module.html#INFO,Variable paramiko.sftp_file.INFO=paramiko.sftp_file-module.html#INFO,Variable paramiko.sftp_handle.INFO=paramiko.sftp_handle-module.html#INFO,Variable paramiko.sftp_server.INFO=paramiko.sftp_server-module.html#INFO,Variable paramiko.sftp_si.INFO=paramiko.sftp_si-module.html#INFO,Variable paramiko.transport.INFO=paramiko.transport-module.html#INFO,Variable paramiko.util.INFO=paramiko.util-module.html#INFO"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -206,39 +211,47 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-25', 'INFO', 'link-25');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Opened sftp connection (server version %d)'</tt> <tt class="py-op">%</tt> <tt class="py-name">server_version</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.from_transport"></a><div id="SFTPClient.from_transport-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="SFTPClient.from_transport-toggle" onclick="return toggle('SFTPClient.from_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#from_transport">from_transport</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.from_transport-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.from_transport-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client channel from an open L{Transport}.</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> @param t: an open L{Transport} which is already authenticated</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> @type t: L{Transport}</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{SFTPClient} object, referring to an sftp session</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> (channel) across the transport</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method paramiko.Transport.open_session()=paramiko.Transport-class.html#open_session"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-26', 'open_session', 'link-26');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.Channel.invoke_subsystem()=paramiko.Channel-class.html#invoke_subsystem"><a title="paramiko.Channel.invoke_subsystem" class="py-name" href="#" onclick="return doclink('link-27', 'invoke_subsystem', 'link-27');">invoke_subsystem</a></tt><tt class="py-op">(</tt><tt class="py-string">'sftp'</tt><tt class="py-op">)</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt id="link-28" class="py-name" targets="Class Method paramiko.SFTPClient.from_transport()=paramiko.SFTPClient-class.html#from_transport"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-28', 'from_transport', 'link-28');">from_transport</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-29', 'from_transport', 'link-28');">from_transport</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._log"></a><div id="SFTPClient._log-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="SFTPClient._log-toggle" onclick="return toggle('SFTPClient._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._log-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-30" class="py-name" targets="Class paramiko.SFTPClient=paramiko.SFTPClient-class.html"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-30', 'SFTPClient', 'link-30');">SFTPClient</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-string">"[chan %s] "</tt> <tt class="py-op">+</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-26', 'INFO', 'link-26');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Opened sftp connection (server version %d)'</tt> <tt class="py-op">%</tt> <tt class="py-name">server_version</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.from_transport"></a><div id="SFTPClient.from_transport-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="SFTPClient.from_transport-toggle" onclick="return toggle('SFTPClient.from_transport');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#from_transport">from_transport</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.from_transport-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.from_transport-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client channel from an open L{Transport}.</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> @param t: an open L{Transport} which is already authenticated</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> @type t: L{Transport}</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{SFTPClient} object, referring to an sftp session</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> (channel) across the transport</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.Transport.open_session()=paramiko.Transport-class.html#open_session"><a title="paramiko.Transport.open_session" class="py-name" href="#" onclick="return doclink('link-27', 'open_session', 'link-27');">open_session</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method paramiko.Channel.invoke_subsystem()=paramiko.Channel-class.html#invoke_subsystem"><a title="paramiko.Channel.invoke_subsystem" class="py-name" href="#" onclick="return doclink('link-28', 'invoke_subsystem', 'link-28');">invoke_subsystem</a></tt><tt class="py-op">(</tt><tt class="py-string">'sftp'</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt id="link-29" class="py-name" targets="Class Method paramiko.SFTPClient.from_transport()=paramiko.SFTPClient-class.html#from_transport"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-29', 'from_transport', 'link-29');">from_transport</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-30', 'from_transport', 'link-29');">from_transport</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._log"></a><div id="SFTPClient._log-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="SFTPClient._log-toggle" onclick="return toggle('SFTPClient._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._log-expanded"><a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msg</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name" targets="Class paramiko.SFTPClient=paramiko.SFTPClient-class.html"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-31', 'SFTPClient', 'link-31');">SFTPClient</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-string">"[chan %s] "</tt> <tt class="py-op">+</tt> <tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
+paramiko.Channel.get_name
+paramiko.DSSKey.get_name
+paramiko.PKey.get_name
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-32', 'get_name', 'link-32');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-33', 'SFTPClient', 'link-31');">SFTPClient</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-string">"[chan %s] "</tt> <tt class="py-op">+</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-31', 'get_name', 'link-31');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.close"></a><div id="SFTPClient.close-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="SFTPClient.close-toggle" onclick="return toggle('SFTPClient.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.close-expanded"><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> Close the SFTP session and its underlying channel.</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="paramiko.auth_handler.INFO
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-34', 'get_name', 'link-32');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.close"></a><div id="SFTPClient.close-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="SFTPClient.close-toggle" onclick="return toggle('SFTPClient.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.close-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> Close the SFTP session and its underlying channel.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -259,8 +272,8 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-32', 'INFO', 'link-25');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'sftp session closed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-35', 'INFO', 'link-26');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'sftp session closed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -271,56 +284,56 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-33', 'close', 'link-33');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.get_channel"></a><div id="SFTPClient.get_channel-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="SFTPClient.get_channel-toggle" onclick="return toggle('SFTPClient.get_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#get_channel">get_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.get_channel-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.get_channel-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> Return the underlying L{Channel} object for this SFTP session. This</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> might be useful for doing things like setting a timeout on the channel.</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> @return: the SSH channel</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.7.1</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> </tt>
-</div><a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.listdir"></a><div id="SFTPClient.listdir-def"><a name="L132"></a><tt class="py-lineno">132</tt> <a class="py-toggle" href="#" id="SFTPClient.listdir-toggle" onclick="return toggle('SFTPClient.listdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#listdir">listdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">=</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.listdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.listdir-expanded"><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> Return a list containing the names of the entries in the given C{path}.</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> The list is in arbitrary order. It does not include the special</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> entries C{'.'} and C{'..'} even if they are present in the folder.</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> This method is meant to mirror C{os.listdir} as closely as possible.</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> For a list of full L{SFTPAttributes} objects, see L{listdir_attr}.</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to list (defaults to C{'.'})</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of filenames</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of str</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method paramiko.SFTPClient.listdir_attr()=paramiko.SFTPClient-class.html#listdir_attr"><a title="paramiko.SFTPClient.listdir_attr" class="py-name" href="#" onclick="return doclink('link-34', 'listdir_attr', 'link-34');">listdir_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.listdir_attr"></a><div id="SFTPClient.listdir_attr-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="SFTPClient.listdir_attr-toggle" onclick="return toggle('SFTPClient.listdir_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#listdir_attr">listdir_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">=</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.listdir_attr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.listdir_attr-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> Return a list containing L{SFTPAttributes} objects corresponding to</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> files in the given C{path}. The list is in arbitrary order. It does</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> not include the special entries C{'.'} and C{'..'} even if they are</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> present in the folder.</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> The returned L{SFTPAttributes} objects will each have an additional</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> field: C{longname}, which may contain a formatted string of the file's</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> attributes, in unix format. The content of this string will probably</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> depend on the SFTP server implementation.</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-36', 'close', 'link-36');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.get_channel"></a><div id="SFTPClient.get_channel-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="SFTPClient.get_channel-toggle" onclick="return toggle('SFTPClient.get_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#get_channel">get_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.get_channel-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.get_channel-expanded"><a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> Return the underlying L{Channel} object for this SFTP session. This</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> might be useful for doing things like setting a timeout on the channel.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> @return: the SSH channel</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.7.1</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> </tt>
+</div><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.listdir"></a><div id="SFTPClient.listdir-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="SFTPClient.listdir-toggle" onclick="return toggle('SFTPClient.listdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#listdir">listdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">=</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.listdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.listdir-expanded"><a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> Return a list containing the names of the entries in the given C{path}.</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> The list is in arbitrary order. It does not include the special</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> entries C{'.'} and C{'..'} even if they are present in the folder.</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> This method is meant to mirror C{os.listdir} as closely as possible.</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> For a list of full L{SFTPAttributes} objects, see L{listdir_attr}.</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to list (defaults to C{'.'})</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of filenames</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of str</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method paramiko.SFTPClient.listdir_attr()=paramiko.SFTPClient-class.html#listdir_attr"><a title="paramiko.SFTPClient.listdir_attr" class="py-name" href="#" onclick="return doclink('link-37', 'listdir_attr', 'link-37');">listdir_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.listdir_attr"></a><div id="SFTPClient.listdir_attr-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="SFTPClient.listdir_attr-toggle" onclick="return toggle('SFTPClient.listdir_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#listdir_attr">listdir_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">=</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.listdir_attr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.listdir_attr-expanded"><a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> Return a list containing L{SFTPAttributes} objects corresponding to</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> files in the given C{path}. The list is in arbitrary order. It does</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> not include the special entries C{'.'} and C{'..'} even if they are</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> present in the folder.</tt> </tt>
<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to list (defaults to C{'.'})</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of attributes</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of L{SFTPAttributes}</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> The returned L{SFTPAttributes} objects will each have an additional</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> field: C{longname}, which may contain a formatted string of the file's</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> attributes, in unix format. The content of this string will probably</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> depend on the SFTP server implementation.</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to list (defaults to C{'.'})</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of attributes</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of L{SFTPAttributes}</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -341,97 +354,97 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-35', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'listdir(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name" targets="Variable paramiko.sftp.CMD_OPENDIR=paramiko.sftp-module.html#CMD_OPENDIR,Variable paramiko.sftp_attr.CMD_OPENDIR=paramiko.sftp_attr-module.html#CMD_OPENDIR,Variable paramiko.sftp_client.CMD_OPENDIR=paramiko.sftp_client-module.html#CMD_OPENDIR,Variable paramiko.sftp_file.CMD_OPENDIR=paramiko.sftp_file-module.html#CMD_OPENDIR,Variable paramiko.sftp_handle.CMD_OPENDIR=paramiko.sftp_handle-module.html#CMD_OPENDIR,Variable paramiko.sftp_server.CMD_OPENDIR=paramiko.sftp_server-module.html#CMD_OPENDIR,Variable paramiko.sftp_si.CMD_OPENDIR=paramiko.sftp_si-module.html#CMD_OPENDIR"><a title="paramiko.sftp.CMD_OPENDIR
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-38', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'listdir(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-39" class="py-name" targets="Variable paramiko.sftp.CMD_OPENDIR=paramiko.sftp-module.html#CMD_OPENDIR,Variable paramiko.sftp_attr.CMD_OPENDIR=paramiko.sftp_attr-module.html#CMD_OPENDIR,Variable paramiko.sftp_client.CMD_OPENDIR=paramiko.sftp_client-module.html#CMD_OPENDIR,Variable paramiko.sftp_file.CMD_OPENDIR=paramiko.sftp_file-module.html#CMD_OPENDIR,Variable paramiko.sftp_handle.CMD_OPENDIR=paramiko.sftp_handle-module.html#CMD_OPENDIR,Variable paramiko.sftp_server.CMD_OPENDIR=paramiko.sftp_server-module.html#CMD_OPENDIR,Variable paramiko.sftp_si.CMD_OPENDIR=paramiko.sftp_si-module.html#CMD_OPENDIR"><a title="paramiko.sftp.CMD_OPENDIR
paramiko.sftp_attr.CMD_OPENDIR
paramiko.sftp_client.CMD_OPENDIR
paramiko.sftp_file.CMD_OPENDIR
paramiko.sftp_handle.CMD_OPENDIR
paramiko.sftp_server.CMD_OPENDIR
-paramiko.sftp_si.CMD_OPENDIR" class="py-name" href="#" onclick="return doclink('link-36', 'CMD_OPENDIR', 'link-36');">CMD_OPENDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-37" class="py-name" targets="Variable paramiko.sftp.CMD_HANDLE=paramiko.sftp-module.html#CMD_HANDLE,Variable paramiko.sftp_attr.CMD_HANDLE=paramiko.sftp_attr-module.html#CMD_HANDLE,Variable paramiko.sftp_client.CMD_HANDLE=paramiko.sftp_client-module.html#CMD_HANDLE,Variable paramiko.sftp_file.CMD_HANDLE=paramiko.sftp_file-module.html#CMD_HANDLE,Variable paramiko.sftp_handle.CMD_HANDLE=paramiko.sftp_handle-module.html#CMD_HANDLE,Variable paramiko.sftp_server.CMD_HANDLE=paramiko.sftp_server-module.html#CMD_HANDLE,Variable paramiko.sftp_si.CMD_HANDLE=paramiko.sftp_si-module.html#CMD_HANDLE"><a title="paramiko.sftp.CMD_HANDLE
+paramiko.sftp_si.CMD_OPENDIR" class="py-name" href="#" onclick="return doclink('link-39', 'CMD_OPENDIR', 'link-39');">CMD_OPENDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-40" class="py-name" targets="Variable paramiko.sftp.CMD_HANDLE=paramiko.sftp-module.html#CMD_HANDLE,Variable paramiko.sftp_attr.CMD_HANDLE=paramiko.sftp_attr-module.html#CMD_HANDLE,Variable paramiko.sftp_client.CMD_HANDLE=paramiko.sftp_client-module.html#CMD_HANDLE,Variable paramiko.sftp_file.CMD_HANDLE=paramiko.sftp_file-module.html#CMD_HANDLE,Variable paramiko.sftp_handle.CMD_HANDLE=paramiko.sftp_handle-module.html#CMD_HANDLE,Variable paramiko.sftp_server.CMD_HANDLE=paramiko.sftp_server-module.html#CMD_HANDLE,Variable paramiko.sftp_si.CMD_HANDLE=paramiko.sftp_si-module.html#CMD_HANDLE"><a title="paramiko.sftp.CMD_HANDLE
paramiko.sftp_attr.CMD_HANDLE
paramiko.sftp_client.CMD_HANDLE
paramiko.sftp_file.CMD_HANDLE
paramiko.sftp_handle.CMD_HANDLE
paramiko.sftp_server.CMD_HANDLE
-paramiko.sftp_si.CMD_HANDLE" class="py-name" href="#" onclick="return doclink('link-37', 'CMD_HANDLE', 'link-37');">CMD_HANDLE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-38" class="py-name" targets="Class paramiko.SFTPError=paramiko.SFTPError-class.html"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-38', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected handle'</tt><tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-39', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">filelist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name" targets="Variable paramiko.sftp.CMD_READDIR=paramiko.sftp-module.html#CMD_READDIR,Variable paramiko.sftp_attr.CMD_READDIR=paramiko.sftp_attr-module.html#CMD_READDIR,Variable paramiko.sftp_client.CMD_READDIR=paramiko.sftp_client-module.html#CMD_READDIR,Variable paramiko.sftp_file.CMD_READDIR=paramiko.sftp_file-module.html#CMD_READDIR,Variable paramiko.sftp_handle.CMD_READDIR=paramiko.sftp_handle-module.html#CMD_READDIR,Variable paramiko.sftp_server.CMD_READDIR=paramiko.sftp_server-module.html#CMD_READDIR,Variable paramiko.sftp_si.CMD_READDIR=paramiko.sftp_si-module.html#CMD_READDIR"><a title="paramiko.sftp.CMD_READDIR
+paramiko.sftp_si.CMD_HANDLE" class="py-name" href="#" onclick="return doclink('link-40', 'CMD_HANDLE', 'link-40');">CMD_HANDLE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-41" class="py-name" targets="Class paramiko.SFTPError=paramiko.SFTPError-class.html"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-41', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected handle'</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-42', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">filelist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-43" class="py-name" targets="Variable paramiko.sftp.CMD_READDIR=paramiko.sftp-module.html#CMD_READDIR,Variable paramiko.sftp_attr.CMD_READDIR=paramiko.sftp_attr-module.html#CMD_READDIR,Variable paramiko.sftp_client.CMD_READDIR=paramiko.sftp_client-module.html#CMD_READDIR,Variable paramiko.sftp_file.CMD_READDIR=paramiko.sftp_file-module.html#CMD_READDIR,Variable paramiko.sftp_handle.CMD_READDIR=paramiko.sftp_handle-module.html#CMD_READDIR,Variable paramiko.sftp_server.CMD_READDIR=paramiko.sftp_server-module.html#CMD_READDIR,Variable paramiko.sftp_si.CMD_READDIR=paramiko.sftp_si-module.html#CMD_READDIR"><a title="paramiko.sftp.CMD_READDIR
paramiko.sftp_attr.CMD_READDIR
paramiko.sftp_client.CMD_READDIR
paramiko.sftp_file.CMD_READDIR
paramiko.sftp_handle.CMD_READDIR
paramiko.sftp_server.CMD_READDIR
-paramiko.sftp_si.CMD_READDIR" class="py-name" href="#" onclick="return doclink('link-40', 'CMD_READDIR', 'link-40');">CMD_READDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-comment"># done with handle</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">break</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-41" class="py-name" targets="Variable paramiko.sftp.CMD_NAME=paramiko.sftp-module.html#CMD_NAME,Variable paramiko.sftp_attr.CMD_NAME=paramiko.sftp_attr-module.html#CMD_NAME,Variable paramiko.sftp_client.CMD_NAME=paramiko.sftp_client-module.html#CMD_NAME,Variable paramiko.sftp_file.CMD_NAME=paramiko.sftp_file-module.html#CMD_NAME,Variable paramiko.sftp_handle.CMD_NAME=paramiko.sftp_handle-module.html#CMD_NAME,Variable paramiko.sftp_server.CMD_NAME=paramiko.sftp_server-module.html#CMD_NAME,Variable paramiko.sftp_si.CMD_NAME=paramiko.sftp_si-module.html#CMD_NAME"><a title="paramiko.sftp.CMD_NAME
+paramiko.sftp_si.CMD_READDIR" class="py-name" href="#" onclick="return doclink('link-43', 'CMD_READDIR', 'link-43');">CMD_READDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-comment"># done with handle</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-44" class="py-name" targets="Variable paramiko.sftp.CMD_NAME=paramiko.sftp-module.html#CMD_NAME,Variable paramiko.sftp_attr.CMD_NAME=paramiko.sftp_attr-module.html#CMD_NAME,Variable paramiko.sftp_client.CMD_NAME=paramiko.sftp_client-module.html#CMD_NAME,Variable paramiko.sftp_file.CMD_NAME=paramiko.sftp_file-module.html#CMD_NAME,Variable paramiko.sftp_handle.CMD_NAME=paramiko.sftp_handle-module.html#CMD_NAME,Variable paramiko.sftp_server.CMD_NAME=paramiko.sftp_server-module.html#CMD_NAME,Variable paramiko.sftp_si.CMD_NAME=paramiko.sftp_si-module.html#CMD_NAME"><a title="paramiko.sftp.CMD_NAME
paramiko.sftp_attr.CMD_NAME
paramiko.sftp_client.CMD_NAME
paramiko.sftp_file.CMD_NAME
paramiko.sftp_handle.CMD_NAME
paramiko.sftp_server.CMD_NAME
-paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-41', 'CMD_NAME', 'link-41');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-42" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-42', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-43', 'get_int', 'link-43');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">count</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-44', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">longname</tt> <tt class="py-op">=</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-45', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-46', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">longname</tt><tt class="py-op">)</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-op">!=</tt> <tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-op">!=</tt> <tt class="py-string">'..'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">filelist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
+paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-44', 'CMD_NAME', 'link-44');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-45" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-45', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-46', 'get_int', 'link-46');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">count</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-47', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">longname</tt> <tt class="py-op">=</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-48', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-49', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">longname</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-op">!=</tt> <tt class="py-string">'.'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-op">!=</tt> <tt class="py-string">'..'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">filelist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-50" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
paramiko.sftp_attr.CMD_CLOSE
paramiko.sftp_client.CMD_CLOSE
paramiko.sftp_file.CMD_CLOSE
paramiko.sftp_handle.CMD_CLOSE
paramiko.sftp_server.CMD_CLOSE
-paramiko.sftp_si.CMD_CLOSE" class="py-name" href="#" onclick="return doclink('link-47', 'CMD_CLOSE', 'link-47');">CMD_CLOSE</a></tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">filelist</tt> </tt>
-</div><a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.open"></a><div id="SFTPClient.open-def"><a name="L191"></a><tt class="py-lineno">191</tt> <a class="py-toggle" href="#" id="SFTPClient.open-toggle" onclick="return toggle('SFTPClient.open');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#open">open</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.open-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.open-expanded"><a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> Open a file on the remote server. The arguments are the same as for</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> python's built-in C{file} (aka C{open}). A file-like object is</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> returned, which closely mimics the behavior of a normal python file</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> object.</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> The mode indicates how the file is to be opened: C{'r'} for reading,</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"> C{'w'} for writing (truncating an existing file), C{'a'} for appending,</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> C{'r+'} for reading/writing, C{'w+'} for reading/writing (truncating an</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> existing file), C{'a+'} for reading/appending. The python C{'b'} flag</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-docstring"> is ignored, since SSH treats all files as binary. The C{'U'} flag is</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> supported in a compatible way.</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5.2, an C{'x'} flag indicates that the operation should only</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> succeed if the file was created and did not previously exist. This has</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"> no direct mapping to python's file flags, but is commonly known as the</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"><tt class="py-docstring"> C{O_EXCL} flag in posix.</tt> </tt>
+paramiko.sftp_si.CMD_CLOSE" class="py-name" href="#" onclick="return doclink('link-50', 'CMD_CLOSE', 'link-50');">CMD_CLOSE</a></tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">filelist</tt> </tt>
+</div><a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.open"></a><div id="SFTPClient.open-def"><a name="L196"></a><tt class="py-lineno">196</tt> <a class="py-toggle" href="#" id="SFTPClient.open-toggle" onclick="return toggle('SFTPClient.open');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#open">open</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.open-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.open-expanded"><a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> Open a file on the remote server. The arguments are the same as for</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"> python's built-in C{file} (aka C{open}). A file-like object is</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> returned, which closely mimics the behavior of a normal python file</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> object.</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> The mode indicates how the file is to be opened: C{'r'} for reading,</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> C{'w'} for writing (truncating an existing file), C{'a'} for appending,</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> C{'r+'} for reading/writing, C{'w+'} for reading/writing (truncating an</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> existing file), C{'a+'} for reading/appending. The python C{'b'} flag</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"> is ignored, since SSH treats all files as binary. The C{'U'} flag is</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"><tt class="py-docstring"> supported in a compatible way.</tt> </tt>
<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> The file will be buffered in standard python style by default, but</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> can be altered with the C{bufsize} parameter. C{0} turns off</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> buffering, C{1} uses line buffering, and any number greater than 1</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> (C{&gt;1}) uses that specific buffer size.</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5.2, an C{'x'} flag indicates that the operation should only</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> succeed if the file was created and did not previously exist. This has</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> no direct mapping to python's file flags, but is commonly known as the</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> C{O_EXCL} flag in posix.</tt> </tt>
<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to open</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: mode (python-style) to open in</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: str</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> @param bufsize: desired buffering (-1 = default buffer size)</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> @type bufsize: int</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> @return: a file object representing the open file</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPFile</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the file could not be opened.</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="paramiko.auth_handler.DEBUG
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> The file will be buffered in standard python style by default, but</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> can be altered with the C{bufsize} parameter. C{0} turns off</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> buffering, C{1} uses line buffering, and any number greater than 1</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> (C{&gt;1}) uses that specific buffer size.</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to open</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: mode (python-style) to open in</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: str</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> @param bufsize: desired buffering (-1 = default buffer size)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> @type bufsize: int</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"><tt class="py-docstring"> @return: a file object representing the open file</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPFile</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the file could not be opened.</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -452,84 +465,84 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-48', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'open(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'r'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'+'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-49" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_READ=paramiko.sftp-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_attr.SFTP_FLAG_READ=paramiko.sftp_attr-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_client.SFTP_FLAG_READ=paramiko.sftp_client-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_file.SFTP_FLAG_READ=paramiko.sftp_file-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_handle.SFTP_FLAG_READ=paramiko.sftp_handle-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_server.SFTP_FLAG_READ=paramiko.sftp_server-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_si.SFTP_FLAG_READ=paramiko.sftp_si-module.html#SFTP_FLAG_READ"><a title="paramiko.sftp.SFTP_FLAG_READ
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-51', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'open(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'r'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'+'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-52" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_READ=paramiko.sftp-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_attr.SFTP_FLAG_READ=paramiko.sftp_attr-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_client.SFTP_FLAG_READ=paramiko.sftp_client-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_file.SFTP_FLAG_READ=paramiko.sftp_file-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_handle.SFTP_FLAG_READ=paramiko.sftp_handle-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_server.SFTP_FLAG_READ=paramiko.sftp_server-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_si.SFTP_FLAG_READ=paramiko.sftp_si-module.html#SFTP_FLAG_READ"><a title="paramiko.sftp.SFTP_FLAG_READ
paramiko.sftp_attr.SFTP_FLAG_READ
paramiko.sftp_client.SFTP_FLAG_READ
paramiko.sftp_file.SFTP_FLAG_READ
paramiko.sftp_handle.SFTP_FLAG_READ
paramiko.sftp_server.SFTP_FLAG_READ
-paramiko.sftp_si.SFTP_FLAG_READ" class="py-name" href="#" onclick="return doclink('link-49', 'SFTP_FLAG_READ', 'link-49');">SFTP_FLAG_READ</a></tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'+'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-50" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_WRITE=paramiko.sftp-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_attr.SFTP_FLAG_WRITE=paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_client.SFTP_FLAG_WRITE=paramiko.sftp_client-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_file.SFTP_FLAG_WRITE=paramiko.sftp_file-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_handle.SFTP_FLAG_WRITE=paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_server.SFTP_FLAG_WRITE=paramiko.sftp_server-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_si.SFTP_FLAG_WRITE=paramiko.sftp_si-module.html#SFTP_FLAG_WRITE"><a title="paramiko.sftp.SFTP_FLAG_WRITE
+paramiko.sftp_si.SFTP_FLAG_READ" class="py-name" href="#" onclick="return doclink('link-52', 'SFTP_FLAG_READ', 'link-52');">SFTP_FLAG_READ</a></tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'+'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-53" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_WRITE=paramiko.sftp-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_attr.SFTP_FLAG_WRITE=paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_client.SFTP_FLAG_WRITE=paramiko.sftp_client-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_file.SFTP_FLAG_WRITE=paramiko.sftp_file-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_handle.SFTP_FLAG_WRITE=paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_server.SFTP_FLAG_WRITE=paramiko.sftp_server-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_si.SFTP_FLAG_WRITE=paramiko.sftp_si-module.html#SFTP_FLAG_WRITE"><a title="paramiko.sftp.SFTP_FLAG_WRITE
paramiko.sftp_attr.SFTP_FLAG_WRITE
paramiko.sftp_client.SFTP_FLAG_WRITE
paramiko.sftp_file.SFTP_FLAG_WRITE
paramiko.sftp_handle.SFTP_FLAG_WRITE
paramiko.sftp_server.SFTP_FLAG_WRITE
-paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-50', 'SFTP_FLAG_WRITE', 'link-50');">SFTP_FLAG_WRITE</a></tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-51" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_CREATE=paramiko.sftp-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_attr.SFTP_FLAG_CREATE=paramiko.sftp_attr-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_client.SFTP_FLAG_CREATE=paramiko.sftp_client-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_file.SFTP_FLAG_CREATE=paramiko.sftp_file-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_handle.SFTP_FLAG_CREATE=paramiko.sftp_handle-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_server.SFTP_FLAG_CREATE=paramiko.sftp_server-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_si.SFTP_FLAG_CREATE=paramiko.sftp_si-module.html#SFTP_FLAG_CREATE"><a title="paramiko.sftp.SFTP_FLAG_CREATE
+paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-53', 'SFTP_FLAG_WRITE', 'link-53');">SFTP_FLAG_WRITE</a></tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-54" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_CREATE=paramiko.sftp-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_attr.SFTP_FLAG_CREATE=paramiko.sftp_attr-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_client.SFTP_FLAG_CREATE=paramiko.sftp_client-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_file.SFTP_FLAG_CREATE=paramiko.sftp_file-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_handle.SFTP_FLAG_CREATE=paramiko.sftp_handle-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_server.SFTP_FLAG_CREATE=paramiko.sftp_server-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_si.SFTP_FLAG_CREATE=paramiko.sftp_si-module.html#SFTP_FLAG_CREATE"><a title="paramiko.sftp.SFTP_FLAG_CREATE
paramiko.sftp_attr.SFTP_FLAG_CREATE
paramiko.sftp_client.SFTP_FLAG_CREATE
paramiko.sftp_file.SFTP_FLAG_CREATE
paramiko.sftp_handle.SFTP_FLAG_CREATE
paramiko.sftp_server.SFTP_FLAG_CREATE
-paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-51', 'SFTP_FLAG_CREATE', 'link-51');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-52" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_TRUNC=paramiko.sftp-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_attr.SFTP_FLAG_TRUNC=paramiko.sftp_attr-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_client.SFTP_FLAG_TRUNC=paramiko.sftp_client-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_file.SFTP_FLAG_TRUNC=paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_handle.SFTP_FLAG_TRUNC=paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_server.SFTP_FLAG_TRUNC=paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_si.SFTP_FLAG_TRUNC=paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC"><a title="paramiko.sftp.SFTP_FLAG_TRUNC
+paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-54', 'SFTP_FLAG_CREATE', 'link-54');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-55" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_TRUNC=paramiko.sftp-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_attr.SFTP_FLAG_TRUNC=paramiko.sftp_attr-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_client.SFTP_FLAG_TRUNC=paramiko.sftp_client-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_file.SFTP_FLAG_TRUNC=paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_handle.SFTP_FLAG_TRUNC=paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_server.SFTP_FLAG_TRUNC=paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_si.SFTP_FLAG_TRUNC=paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC"><a title="paramiko.sftp.SFTP_FLAG_TRUNC
paramiko.sftp_attr.SFTP_FLAG_TRUNC
paramiko.sftp_client.SFTP_FLAG_TRUNC
paramiko.sftp_file.SFTP_FLAG_TRUNC
paramiko.sftp_handle.SFTP_FLAG_TRUNC
paramiko.sftp_server.SFTP_FLAG_TRUNC
-paramiko.sftp_si.SFTP_FLAG_TRUNC" class="py-name" href="#" onclick="return doclink('link-52', 'SFTP_FLAG_TRUNC', 'link-52');">SFTP_FLAG_TRUNC</a></tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-53" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_CREATE
+paramiko.sftp_si.SFTP_FLAG_TRUNC" class="py-name" href="#" onclick="return doclink('link-55', 'SFTP_FLAG_TRUNC', 'link-55');">SFTP_FLAG_TRUNC</a></tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-56" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_CREATE
paramiko.sftp_attr.SFTP_FLAG_CREATE
paramiko.sftp_client.SFTP_FLAG_CREATE
paramiko.sftp_file.SFTP_FLAG_CREATE
paramiko.sftp_handle.SFTP_FLAG_CREATE
paramiko.sftp_server.SFTP_FLAG_CREATE
-paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-53', 'SFTP_FLAG_CREATE', 'link-51');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-54" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_APPEND=paramiko.sftp-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_attr.SFTP_FLAG_APPEND=paramiko.sftp_attr-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_client.SFTP_FLAG_APPEND=paramiko.sftp_client-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_file.SFTP_FLAG_APPEND=paramiko.sftp_file-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_handle.SFTP_FLAG_APPEND=paramiko.sftp_handle-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_server.SFTP_FLAG_APPEND=paramiko.sftp_server-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_si.SFTP_FLAG_APPEND=paramiko.sftp_si-module.html#SFTP_FLAG_APPEND"><a title="paramiko.sftp.SFTP_FLAG_APPEND
+paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-56', 'SFTP_FLAG_CREATE', 'link-54');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-57" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_APPEND=paramiko.sftp-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_attr.SFTP_FLAG_APPEND=paramiko.sftp_attr-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_client.SFTP_FLAG_APPEND=paramiko.sftp_client-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_file.SFTP_FLAG_APPEND=paramiko.sftp_file-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_handle.SFTP_FLAG_APPEND=paramiko.sftp_handle-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_server.SFTP_FLAG_APPEND=paramiko.sftp_server-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_si.SFTP_FLAG_APPEND=paramiko.sftp_si-module.html#SFTP_FLAG_APPEND"><a title="paramiko.sftp.SFTP_FLAG_APPEND
paramiko.sftp_attr.SFTP_FLAG_APPEND
paramiko.sftp_client.SFTP_FLAG_APPEND
paramiko.sftp_file.SFTP_FLAG_APPEND
paramiko.sftp_handle.SFTP_FLAG_APPEND
paramiko.sftp_server.SFTP_FLAG_APPEND
-paramiko.sftp_si.SFTP_FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-54', 'SFTP_FLAG_APPEND', 'link-54');">SFTP_FLAG_APPEND</a></tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-55" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_CREATE
+paramiko.sftp_si.SFTP_FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-57', 'SFTP_FLAG_APPEND', 'link-57');">SFTP_FLAG_APPEND</a></tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">imode</tt> <tt class="py-op">|=</tt> <tt id="link-58" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_CREATE
paramiko.sftp_attr.SFTP_FLAG_CREATE
paramiko.sftp_client.SFTP_FLAG_CREATE
paramiko.sftp_file.SFTP_FLAG_CREATE
paramiko.sftp_handle.SFTP_FLAG_CREATE
paramiko.sftp_server.SFTP_FLAG_CREATE
-paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-55', 'SFTP_FLAG_CREATE', 'link-51');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-56" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_EXCL=paramiko.sftp-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_attr.SFTP_FLAG_EXCL=paramiko.sftp_attr-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_client.SFTP_FLAG_EXCL=paramiko.sftp_client-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_file.SFTP_FLAG_EXCL=paramiko.sftp_file-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_handle.SFTP_FLAG_EXCL=paramiko.sftp_handle-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_server.SFTP_FLAG_EXCL=paramiko.sftp_server-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_si.SFTP_FLAG_EXCL=paramiko.sftp_si-module.html#SFTP_FLAG_EXCL"><a title="paramiko.sftp.SFTP_FLAG_EXCL
+paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-58', 'SFTP_FLAG_CREATE', 'link-54');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">|</tt> <tt id="link-59" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_EXCL=paramiko.sftp-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_attr.SFTP_FLAG_EXCL=paramiko.sftp_attr-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_client.SFTP_FLAG_EXCL=paramiko.sftp_client-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_file.SFTP_FLAG_EXCL=paramiko.sftp_file-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_handle.SFTP_FLAG_EXCL=paramiko.sftp_handle-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_server.SFTP_FLAG_EXCL=paramiko.sftp_server-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_si.SFTP_FLAG_EXCL=paramiko.sftp_si-module.html#SFTP_FLAG_EXCL"><a title="paramiko.sftp.SFTP_FLAG_EXCL
paramiko.sftp_attr.SFTP_FLAG_EXCL
paramiko.sftp_client.SFTP_FLAG_EXCL
paramiko.sftp_file.SFTP_FLAG_EXCL
paramiko.sftp_handle.SFTP_FLAG_EXCL
paramiko.sftp_server.SFTP_FLAG_EXCL
-paramiko.sftp_si.SFTP_FLAG_EXCL" class="py-name" href="#" onclick="return doclink('link-56', 'SFTP_FLAG_EXCL', 'link-56');">SFTP_FLAG_EXCL</a></tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">attrblock</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-57', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name" targets="Variable paramiko.sftp.CMD_OPEN=paramiko.sftp-module.html#CMD_OPEN,Variable paramiko.sftp_attr.CMD_OPEN=paramiko.sftp_attr-module.html#CMD_OPEN,Variable paramiko.sftp_client.CMD_OPEN=paramiko.sftp_client-module.html#CMD_OPEN,Variable paramiko.sftp_file.CMD_OPEN=paramiko.sftp_file-module.html#CMD_OPEN,Variable paramiko.sftp_handle.CMD_OPEN=paramiko.sftp_handle-module.html#CMD_OPEN,Variable paramiko.sftp_server.CMD_OPEN=paramiko.sftp_server-module.html#CMD_OPEN,Variable paramiko.sftp_si.CMD_OPEN=paramiko.sftp_si-module.html#CMD_OPEN"><a title="paramiko.sftp.CMD_OPEN
+paramiko.sftp_si.SFTP_FLAG_EXCL" class="py-name" href="#" onclick="return doclink('link-59', 'SFTP_FLAG_EXCL', 'link-59');">SFTP_FLAG_EXCL</a></tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">attrblock</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-60', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-61" class="py-name" targets="Variable paramiko.sftp.CMD_OPEN=paramiko.sftp-module.html#CMD_OPEN,Variable paramiko.sftp_attr.CMD_OPEN=paramiko.sftp_attr-module.html#CMD_OPEN,Variable paramiko.sftp_client.CMD_OPEN=paramiko.sftp_client-module.html#CMD_OPEN,Variable paramiko.sftp_file.CMD_OPEN=paramiko.sftp_file-module.html#CMD_OPEN,Variable paramiko.sftp_handle.CMD_OPEN=paramiko.sftp_handle-module.html#CMD_OPEN,Variable paramiko.sftp_server.CMD_OPEN=paramiko.sftp_server-module.html#CMD_OPEN,Variable paramiko.sftp_si.CMD_OPEN=paramiko.sftp_si-module.html#CMD_OPEN"><a title="paramiko.sftp.CMD_OPEN
paramiko.sftp_attr.CMD_OPEN
paramiko.sftp_client.CMD_OPEN
paramiko.sftp_file.CMD_OPEN
paramiko.sftp_handle.CMD_OPEN
paramiko.sftp_server.CMD_OPEN
-paramiko.sftp_si.CMD_OPEN" class="py-name" href="#" onclick="return doclink('link-58', 'CMD_OPEN', 'link-58');">CMD_OPEN</a></tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">imode</tt><tt class="py-op">,</tt> <tt class="py-name">attrblock</tt><tt class="py-op">)</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-59" class="py-name"><a title="paramiko.sftp.CMD_HANDLE
+paramiko.sftp_si.CMD_OPEN" class="py-name" href="#" onclick="return doclink('link-61', 'CMD_OPEN', 'link-61');">CMD_OPEN</a></tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">imode</tt><tt class="py-op">,</tt> <tt class="py-name">attrblock</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-62" class="py-name"><a title="paramiko.sftp.CMD_HANDLE
paramiko.sftp_attr.CMD_HANDLE
paramiko.sftp_client.CMD_HANDLE
paramiko.sftp_file.CMD_HANDLE
paramiko.sftp_handle.CMD_HANDLE
paramiko.sftp_server.CMD_HANDLE
-paramiko.sftp_si.CMD_HANDLE" class="py-name" href="#" onclick="return doclink('link-59', 'CMD_HANDLE', 'link-37');">CMD_HANDLE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-60" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-60', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected handle'</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-61', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_HANDLE" class="py-name" href="#" onclick="return doclink('link-62', 'CMD_HANDLE', 'link-40');">CMD_HANDLE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-63" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-63', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected handle'</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-64', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -550,25 +563,25 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-62', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'open(%r, %r) -&gt; %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">handle</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-63" class="py-name"><a title="paramiko.SFTPFile" class="py-name" href="#" onclick="return doclink('link-63', 'SFTPFile', 'link-10');">SFTPFile</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-comment"># python continues to vacillate about "open" vs "file"...</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-64" class="py-name" targets="Method paramiko.SFTPClient.file()=paramiko.SFTPClient-class.html#file,Module paramiko.file=paramiko.file-module.html"><a title="paramiko.SFTPClient.file
-paramiko.file" class="py-name" href="#" onclick="return doclink('link-64', 'file', 'link-64');">file</a></tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-65', 'open', 'link-65');">open</a></tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.remove"></a><div id="SFTPClient.remove-def"><a name="L250"></a><tt class="py-lineno">250</tt> <a class="py-toggle" href="#" id="SFTPClient.remove-toggle" onclick="return toggle('SFTPClient.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.remove-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.remove-expanded"><a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> Remove the file at the given path. This only works on files; for</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> removing folders (directories), use L{rmdir}.</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path (absolute or relative) of the file to remove</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the path refers to a folder (directory)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-65', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'open(%r, %r) -&gt; %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">handle</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-66" class="py-name"><a title="paramiko.SFTPFile" class="py-name" href="#" onclick="return doclink('link-66', 'SFTPFile', 'link-11');">SFTPFile</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">bufsize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-comment"># python continues to vacillate about "open" vs "file"...</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt id="link-67" class="py-name" targets="Method paramiko.SFTPClient.file()=paramiko.SFTPClient-class.html#file,Module paramiko.file=paramiko.file-module.html"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-67', 'file', 'link-67');">file</a></tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-68', 'open', 'link-68');">open</a></tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.remove"></a><div id="SFTPClient.remove-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="SFTPClient.remove-toggle" onclick="return toggle('SFTPClient.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#remove">remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.remove-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.remove-expanded"><a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> Remove the file at the given path. This only works on files; for</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> removing folders (directories), use L{rmdir}.</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path (absolute or relative) of the file to remove</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the path refers to a folder (directory)</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -589,32 +602,32 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-66', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'remove(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-67" class="py-name" targets="Variable paramiko.sftp.CMD_REMOVE=paramiko.sftp-module.html#CMD_REMOVE,Variable paramiko.sftp_attr.CMD_REMOVE=paramiko.sftp_attr-module.html#CMD_REMOVE,Variable paramiko.sftp_client.CMD_REMOVE=paramiko.sftp_client-module.html#CMD_REMOVE,Variable paramiko.sftp_file.CMD_REMOVE=paramiko.sftp_file-module.html#CMD_REMOVE,Variable paramiko.sftp_handle.CMD_REMOVE=paramiko.sftp_handle-module.html#CMD_REMOVE,Variable paramiko.sftp_server.CMD_REMOVE=paramiko.sftp_server-module.html#CMD_REMOVE,Variable paramiko.sftp_si.CMD_REMOVE=paramiko.sftp_si-module.html#CMD_REMOVE"><a title="paramiko.sftp.CMD_REMOVE
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-69', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'remove(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name" targets="Variable paramiko.sftp.CMD_REMOVE=paramiko.sftp-module.html#CMD_REMOVE,Variable paramiko.sftp_attr.CMD_REMOVE=paramiko.sftp_attr-module.html#CMD_REMOVE,Variable paramiko.sftp_client.CMD_REMOVE=paramiko.sftp_client-module.html#CMD_REMOVE,Variable paramiko.sftp_file.CMD_REMOVE=paramiko.sftp_file-module.html#CMD_REMOVE,Variable paramiko.sftp_handle.CMD_REMOVE=paramiko.sftp_handle-module.html#CMD_REMOVE,Variable paramiko.sftp_server.CMD_REMOVE=paramiko.sftp_server-module.html#CMD_REMOVE,Variable paramiko.sftp_si.CMD_REMOVE=paramiko.sftp_si-module.html#CMD_REMOVE"><a title="paramiko.sftp.CMD_REMOVE
paramiko.sftp_attr.CMD_REMOVE
paramiko.sftp_client.CMD_REMOVE
paramiko.sftp_file.CMD_REMOVE
paramiko.sftp_handle.CMD_REMOVE
paramiko.sftp_server.CMD_REMOVE
-paramiko.sftp_si.CMD_REMOVE" class="py-name" href="#" onclick="return doclink('link-67', 'CMD_REMOVE', 'link-67');">CMD_REMOVE</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt id="link-68" class="py-name" targets="Method paramiko.SFTPClient.unlink()=paramiko.SFTPClient-class.html#unlink"><a title="paramiko.SFTPClient.unlink" class="py-name" href="#" onclick="return doclink('link-68', 'unlink', 'link-68');">unlink</a></tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-69', 'remove', 'link-69');">remove</a></tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.rename"></a><div id="SFTPClient.rename-def"><a name="L266"></a><tt class="py-lineno">266</tt> <a class="py-toggle" href="#" id="SFTPClient.rename-toggle" onclick="return toggle('SFTPClient.rename');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#rename">rename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">oldpath</tt><tt class="py-op">,</tt> <tt class="py-param">newpath</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.rename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.rename-expanded"><a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> Rename a file or folder from C{oldpath} to C{newpath}.</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"> @param oldpath: existing name of the file or folder</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> @type oldpath: str</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> @param newpath: new name for the file or folder</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> @type newpath: str</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if C{newpath} is a folder, or something else goes</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> wrong</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">oldpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">newpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">newpath</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_REMOVE" class="py-name" href="#" onclick="return doclink('link-70', 'CMD_REMOVE', 'link-70');">CMD_REMOVE</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt id="link-71" class="py-name" targets="Method paramiko.SFTPClient.unlink()=paramiko.SFTPClient-class.html#unlink"><a title="paramiko.SFTPClient.unlink" class="py-name" href="#" onclick="return doclink('link-71', 'unlink', 'link-71');">unlink</a></tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-72', 'remove', 'link-72');">remove</a></tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.rename"></a><div id="SFTPClient.rename-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="SFTPClient.rename-toggle" onclick="return toggle('SFTPClient.rename');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#rename">rename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">oldpath</tt><tt class="py-op">,</tt> <tt class="py-param">newpath</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.rename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.rename-expanded"><a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> Rename a file or folder from C{oldpath} to C{newpath}.</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> @param oldpath: existing name of the file or folder</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> @type oldpath: str</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> @param newpath: new name for the file or folder</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"><tt class="py-docstring"> @type newpath: str</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if C{newpath} is a folder, or something else goes</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"><tt class="py-docstring"> wrong</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">oldpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">newpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">newpath</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-73" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -635,28 +648,28 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-70', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rename(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-71" class="py-name" targets="Variable paramiko.sftp.CMD_RENAME=paramiko.sftp-module.html#CMD_RENAME,Variable paramiko.sftp_attr.CMD_RENAME=paramiko.sftp_attr-module.html#CMD_RENAME,Variable paramiko.sftp_client.CMD_RENAME=paramiko.sftp_client-module.html#CMD_RENAME,Variable paramiko.sftp_file.CMD_RENAME=paramiko.sftp_file-module.html#CMD_RENAME,Variable paramiko.sftp_handle.CMD_RENAME=paramiko.sftp_handle-module.html#CMD_RENAME,Variable paramiko.sftp_server.CMD_RENAME=paramiko.sftp_server-module.html#CMD_RENAME,Variable paramiko.sftp_si.CMD_RENAME=paramiko.sftp_si-module.html#CMD_RENAME"><a title="paramiko.sftp.CMD_RENAME
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-73', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rename(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name" targets="Variable paramiko.sftp.CMD_RENAME=paramiko.sftp-module.html#CMD_RENAME,Variable paramiko.sftp_attr.CMD_RENAME=paramiko.sftp_attr-module.html#CMD_RENAME,Variable paramiko.sftp_client.CMD_RENAME=paramiko.sftp_client-module.html#CMD_RENAME,Variable paramiko.sftp_file.CMD_RENAME=paramiko.sftp_file-module.html#CMD_RENAME,Variable paramiko.sftp_handle.CMD_RENAME=paramiko.sftp_handle-module.html#CMD_RENAME,Variable paramiko.sftp_server.CMD_RENAME=paramiko.sftp_server-module.html#CMD_RENAME,Variable paramiko.sftp_si.CMD_RENAME=paramiko.sftp_si-module.html#CMD_RENAME"><a title="paramiko.sftp.CMD_RENAME
paramiko.sftp_attr.CMD_RENAME
paramiko.sftp_client.CMD_RENAME
paramiko.sftp_file.CMD_RENAME
paramiko.sftp_handle.CMD_RENAME
paramiko.sftp_server.CMD_RENAME
-paramiko.sftp_si.CMD_RENAME" class="py-name" href="#" onclick="return doclink('link-71', 'CMD_RENAME', 'link-71');">CMD_RENAME</a></tt><tt class="py-op">,</tt> <tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.mkdir"></a><div id="SFTPClient.mkdir-def"><a name="L283"></a><tt class="py-lineno">283</tt> <a class="py-toggle" href="#" id="SFTPClient.mkdir-toggle" onclick="return toggle('SFTPClient.mkdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#mkdir">mkdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-number">0777</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.mkdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.mkdir-expanded"><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> Create a folder (directory) named C{path} with numeric mode C{mode}.</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> The default mode is 0777 (octal). On some systems, mode is ignored.</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"> Where it is used, the current umask value is first masked out.</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"><tt class="py-docstring"> @param path: name of the folder to create</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: permissions (posix-style) for the newly-created folder</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: int</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_RENAME" class="py-name" href="#" onclick="return doclink('link-74', 'CMD_RENAME', 'link-74');">CMD_RENAME</a></tt><tt class="py-op">,</tt> <tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.mkdir"></a><div id="SFTPClient.mkdir-def"><a name="L288"></a><tt class="py-lineno">288</tt> <a class="py-toggle" href="#" id="SFTPClient.mkdir-toggle" onclick="return toggle('SFTPClient.mkdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#mkdir">mkdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-number">0777</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.mkdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.mkdir-expanded"><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> Create a folder (directory) named C{path} with numeric mode C{mode}.</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> The default mode is 0777 (octal). On some systems, mode is ignored.</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> Where it is used, the current umask value is first masked out.</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"> @param path: name of the folder to create</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: permissions (posix-style) for the newly-created folder</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: int</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -677,26 +690,26 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-72', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'mkdir(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-73', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name" targets="Variable paramiko.sftp.CMD_MKDIR=paramiko.sftp-module.html#CMD_MKDIR,Variable paramiko.sftp_attr.CMD_MKDIR=paramiko.sftp_attr-module.html#CMD_MKDIR,Variable paramiko.sftp_client.CMD_MKDIR=paramiko.sftp_client-module.html#CMD_MKDIR,Variable paramiko.sftp_file.CMD_MKDIR=paramiko.sftp_file-module.html#CMD_MKDIR,Variable paramiko.sftp_handle.CMD_MKDIR=paramiko.sftp_handle-module.html#CMD_MKDIR,Variable paramiko.sftp_server.CMD_MKDIR=paramiko.sftp_server-module.html#CMD_MKDIR,Variable paramiko.sftp_si.CMD_MKDIR=paramiko.sftp_si-module.html#CMD_MKDIR"><a title="paramiko.sftp.CMD_MKDIR
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-75', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'mkdir(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-76', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name" targets="Variable paramiko.sftp.CMD_MKDIR=paramiko.sftp-module.html#CMD_MKDIR,Variable paramiko.sftp_attr.CMD_MKDIR=paramiko.sftp_attr-module.html#CMD_MKDIR,Variable paramiko.sftp_client.CMD_MKDIR=paramiko.sftp_client-module.html#CMD_MKDIR,Variable paramiko.sftp_file.CMD_MKDIR=paramiko.sftp_file-module.html#CMD_MKDIR,Variable paramiko.sftp_handle.CMD_MKDIR=paramiko.sftp_handle-module.html#CMD_MKDIR,Variable paramiko.sftp_server.CMD_MKDIR=paramiko.sftp_server-module.html#CMD_MKDIR,Variable paramiko.sftp_si.CMD_MKDIR=paramiko.sftp_si-module.html#CMD_MKDIR"><a title="paramiko.sftp.CMD_MKDIR
paramiko.sftp_attr.CMD_MKDIR
paramiko.sftp_client.CMD_MKDIR
paramiko.sftp_file.CMD_MKDIR
paramiko.sftp_handle.CMD_MKDIR
paramiko.sftp_server.CMD_MKDIR
-paramiko.sftp_si.CMD_MKDIR" class="py-name" href="#" onclick="return doclink('link-74', 'CMD_MKDIR', 'link-74');">CMD_MKDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.rmdir"></a><div id="SFTPClient.rmdir-def"><a name="L300"></a><tt class="py-lineno">300</tt> <a class="py-toggle" href="#" id="SFTPClient.rmdir-toggle" onclick="return toggle('SFTPClient.rmdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#rmdir">rmdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.rmdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.rmdir-expanded"><a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> Remove the folder named C{path}.</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> @param path: name of the folder to remove</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_MKDIR" class="py-name" href="#" onclick="return doclink('link-77', 'CMD_MKDIR', 'link-77');">CMD_MKDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.rmdir"></a><div id="SFTPClient.rmdir-def"><a name="L305"></a><tt class="py-lineno">305</tt> <a class="py-toggle" href="#" id="SFTPClient.rmdir-toggle" onclick="return toggle('SFTPClient.rmdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#rmdir">rmdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.rmdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.rmdir-expanded"><a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> Remove the folder named C{path}.</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"><tt class="py-docstring"> @param path: name of the folder to remove</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-78" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -717,36 +730,36 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-75', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rmdir(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-76" class="py-name" targets="Variable paramiko.sftp.CMD_RMDIR=paramiko.sftp-module.html#CMD_RMDIR,Variable paramiko.sftp_attr.CMD_RMDIR=paramiko.sftp_attr-module.html#CMD_RMDIR,Variable paramiko.sftp_client.CMD_RMDIR=paramiko.sftp_client-module.html#CMD_RMDIR,Variable paramiko.sftp_file.CMD_RMDIR=paramiko.sftp_file-module.html#CMD_RMDIR,Variable paramiko.sftp_handle.CMD_RMDIR=paramiko.sftp_handle-module.html#CMD_RMDIR,Variable paramiko.sftp_server.CMD_RMDIR=paramiko.sftp_server-module.html#CMD_RMDIR,Variable paramiko.sftp_si.CMD_RMDIR=paramiko.sftp_si-module.html#CMD_RMDIR"><a title="paramiko.sftp.CMD_RMDIR
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-78', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rmdir(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name" targets="Variable paramiko.sftp.CMD_RMDIR=paramiko.sftp-module.html#CMD_RMDIR,Variable paramiko.sftp_attr.CMD_RMDIR=paramiko.sftp_attr-module.html#CMD_RMDIR,Variable paramiko.sftp_client.CMD_RMDIR=paramiko.sftp_client-module.html#CMD_RMDIR,Variable paramiko.sftp_file.CMD_RMDIR=paramiko.sftp_file-module.html#CMD_RMDIR,Variable paramiko.sftp_handle.CMD_RMDIR=paramiko.sftp_handle-module.html#CMD_RMDIR,Variable paramiko.sftp_server.CMD_RMDIR=paramiko.sftp_server-module.html#CMD_RMDIR,Variable paramiko.sftp_si.CMD_RMDIR=paramiko.sftp_si-module.html#CMD_RMDIR"><a title="paramiko.sftp.CMD_RMDIR
paramiko.sftp_attr.CMD_RMDIR
paramiko.sftp_client.CMD_RMDIR
paramiko.sftp_file.CMD_RMDIR
paramiko.sftp_handle.CMD_RMDIR
paramiko.sftp_server.CMD_RMDIR
-paramiko.sftp_si.CMD_RMDIR" class="py-name" href="#" onclick="return doclink('link-76', 'CMD_RMDIR', 'link-76');">CMD_RMDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.stat"></a><div id="SFTPClient.stat-def"><a name="L311"></a><tt class="py-lineno">311</tt> <a class="py-toggle" href="#" id="SFTPClient.stat-toggle" onclick="return toggle('SFTPClient.stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#stat">stat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.stat-expanded"><a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"><tt class="py-docstring"> Retrieve information about a file on the remote system. The return</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"><tt class="py-docstring"> value is an object whose attributes correspond to the attributes of</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"><tt class="py-docstring"> python's C{stat} structure as returned by C{os.stat}, except that it</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"><tt class="py-docstring"> contains fewer fields. An SFTP server may return as much or as little</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"><tt class="py-docstring"> info as it wants, so the results may vary from server to server.</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> Unlike a python C{stat} object, the result may not be accessed as a</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> tuple. This is mostly due to the author's slack factor.</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"> The fields supported are: C{st_mode}, C{st_size}, C{st_uid}, C{st_gid},</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"> C{st_atime}, and C{st_mtime}.</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> @param path: the filename to stat</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_RMDIR" class="py-name" href="#" onclick="return doclink('link-79', 'CMD_RMDIR', 'link-79');">CMD_RMDIR</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.stat"></a><div id="SFTPClient.stat-def"><a name="L316"></a><tt class="py-lineno">316</tt> <a class="py-toggle" href="#" id="SFTPClient.stat-toggle" onclick="return toggle('SFTPClient.stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#stat">stat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.stat-expanded"><a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> Retrieve information about a file on the remote system. The return</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> value is an object whose attributes correspond to the attributes of</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> python's C{stat} structure as returned by C{os.stat}, except that it</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"> contains fewer fields. An SFTP server may return as much or as little</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"> info as it wants, so the results may vary from server to server.</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> Unlike a python C{stat} object, the result may not be accessed as a</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> tuple. This is mostly due to the author's slack factor.</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> The fields supported are: C{st_mode}, C{st_size}, C{st_uid}, C{st_gid},</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> C{st_atime}, and C{st_mtime}.</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> @param path: the filename to stat</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -767,37 +780,37 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-77', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'stat(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-78" class="py-name" targets="Variable paramiko.sftp.CMD_STAT=paramiko.sftp-module.html#CMD_STAT,Variable paramiko.sftp_attr.CMD_STAT=paramiko.sftp_attr-module.html#CMD_STAT,Variable paramiko.sftp_client.CMD_STAT=paramiko.sftp_client-module.html#CMD_STAT,Variable paramiko.sftp_file.CMD_STAT=paramiko.sftp_file-module.html#CMD_STAT,Variable paramiko.sftp_handle.CMD_STAT=paramiko.sftp_handle-module.html#CMD_STAT,Variable paramiko.sftp_server.CMD_STAT=paramiko.sftp_server-module.html#CMD_STAT,Variable paramiko.sftp_si.CMD_STAT=paramiko.sftp_si-module.html#CMD_STAT"><a title="paramiko.sftp.CMD_STAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-80', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'stat(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-81" class="py-name" targets="Variable paramiko.sftp.CMD_STAT=paramiko.sftp-module.html#CMD_STAT,Variable paramiko.sftp_attr.CMD_STAT=paramiko.sftp_attr-module.html#CMD_STAT,Variable paramiko.sftp_client.CMD_STAT=paramiko.sftp_client-module.html#CMD_STAT,Variable paramiko.sftp_file.CMD_STAT=paramiko.sftp_file-module.html#CMD_STAT,Variable paramiko.sftp_handle.CMD_STAT=paramiko.sftp_handle-module.html#CMD_STAT,Variable paramiko.sftp_server.CMD_STAT=paramiko.sftp_server-module.html#CMD_STAT,Variable paramiko.sftp_si.CMD_STAT=paramiko.sftp_si-module.html#CMD_STAT"><a title="paramiko.sftp.CMD_STAT
paramiko.sftp_attr.CMD_STAT
paramiko.sftp_client.CMD_STAT
paramiko.sftp_file.CMD_STAT
paramiko.sftp_handle.CMD_STAT
paramiko.sftp_server.CMD_STAT
-paramiko.sftp_si.CMD_STAT" class="py-name" href="#" onclick="return doclink('link-78', 'CMD_STAT', 'link-78');">CMD_STAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-79" class="py-name" targets="Variable paramiko.sftp.CMD_ATTRS=paramiko.sftp-module.html#CMD_ATTRS,Variable paramiko.sftp_attr.CMD_ATTRS=paramiko.sftp_attr-module.html#CMD_ATTRS,Variable paramiko.sftp_client.CMD_ATTRS=paramiko.sftp_client-module.html#CMD_ATTRS,Variable paramiko.sftp_file.CMD_ATTRS=paramiko.sftp_file-module.html#CMD_ATTRS,Variable paramiko.sftp_handle.CMD_ATTRS=paramiko.sftp_handle-module.html#CMD_ATTRS,Variable paramiko.sftp_server.CMD_ATTRS=paramiko.sftp_server-module.html#CMD_ATTRS,Variable paramiko.sftp_si.CMD_ATTRS=paramiko.sftp_si-module.html#CMD_ATTRS"><a title="paramiko.sftp.CMD_ATTRS
+paramiko.sftp_si.CMD_STAT" class="py-name" href="#" onclick="return doclink('link-81', 'CMD_STAT', 'link-81');">CMD_STAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-82" class="py-name" targets="Variable paramiko.sftp.CMD_ATTRS=paramiko.sftp-module.html#CMD_ATTRS,Variable paramiko.sftp_attr.CMD_ATTRS=paramiko.sftp_attr-module.html#CMD_ATTRS,Variable paramiko.sftp_client.CMD_ATTRS=paramiko.sftp_client-module.html#CMD_ATTRS,Variable paramiko.sftp_file.CMD_ATTRS=paramiko.sftp_file-module.html#CMD_ATTRS,Variable paramiko.sftp_handle.CMD_ATTRS=paramiko.sftp_handle-module.html#CMD_ATTRS,Variable paramiko.sftp_server.CMD_ATTRS=paramiko.sftp_server-module.html#CMD_ATTRS,Variable paramiko.sftp_si.CMD_ATTRS=paramiko.sftp_si-module.html#CMD_ATTRS"><a title="paramiko.sftp.CMD_ATTRS
paramiko.sftp_attr.CMD_ATTRS
paramiko.sftp_client.CMD_ATTRS
paramiko.sftp_file.CMD_ATTRS
paramiko.sftp_handle.CMD_ATTRS
paramiko.sftp_server.CMD_ATTRS
-paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-79', 'CMD_ATTRS', 'link-79');">CMD_ATTRS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-80" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-80', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected attributes'</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-81" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-81', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.lstat"></a><div id="SFTPClient.lstat-def"><a name="L337"></a><tt class="py-lineno">337</tt> <a class="py-toggle" href="#" id="SFTPClient.lstat-toggle" onclick="return toggle('SFTPClient.lstat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#lstat">lstat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.lstat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.lstat-expanded"><a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> Retrieve information about a file on the remote system, without</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> following symbolic links (shortcuts). This otherwise behaves exactly</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> the same as L{stat}.</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> @param path: the filename to stat</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-82', 'CMD_ATTRS', 'link-82');">CMD_ATTRS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-83" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-83', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected attributes'</tt><tt class="py-op">)</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-84" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-84', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.lstat"></a><div id="SFTPClient.lstat-def"><a name="L342"></a><tt class="py-lineno">342</tt> <a class="py-toggle" href="#" id="SFTPClient.lstat-toggle" onclick="return toggle('SFTPClient.lstat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#lstat">lstat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.lstat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.lstat-expanded"><a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"> Retrieve information about a file on the remote system, without</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"><tt class="py-docstring"> following symbolic links (shortcuts). This otherwise behaves exactly</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-docstring"> the same as L{stat}.</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt class="py-docstring"> @param path: the filename to stat</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -818,36 +831,36 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-82', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'lstat(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-83" class="py-name" targets="Variable paramiko.sftp.CMD_LSTAT=paramiko.sftp-module.html#CMD_LSTAT,Variable paramiko.sftp_attr.CMD_LSTAT=paramiko.sftp_attr-module.html#CMD_LSTAT,Variable paramiko.sftp_client.CMD_LSTAT=paramiko.sftp_client-module.html#CMD_LSTAT,Variable paramiko.sftp_file.CMD_LSTAT=paramiko.sftp_file-module.html#CMD_LSTAT,Variable paramiko.sftp_handle.CMD_LSTAT=paramiko.sftp_handle-module.html#CMD_LSTAT,Variable paramiko.sftp_server.CMD_LSTAT=paramiko.sftp_server-module.html#CMD_LSTAT,Variable paramiko.sftp_si.CMD_LSTAT=paramiko.sftp_si-module.html#CMD_LSTAT"><a title="paramiko.sftp.CMD_LSTAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-85', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'lstat(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-86" class="py-name" targets="Variable paramiko.sftp.CMD_LSTAT=paramiko.sftp-module.html#CMD_LSTAT,Variable paramiko.sftp_attr.CMD_LSTAT=paramiko.sftp_attr-module.html#CMD_LSTAT,Variable paramiko.sftp_client.CMD_LSTAT=paramiko.sftp_client-module.html#CMD_LSTAT,Variable paramiko.sftp_file.CMD_LSTAT=paramiko.sftp_file-module.html#CMD_LSTAT,Variable paramiko.sftp_handle.CMD_LSTAT=paramiko.sftp_handle-module.html#CMD_LSTAT,Variable paramiko.sftp_server.CMD_LSTAT=paramiko.sftp_server-module.html#CMD_LSTAT,Variable paramiko.sftp_si.CMD_LSTAT=paramiko.sftp_si-module.html#CMD_LSTAT"><a title="paramiko.sftp.CMD_LSTAT
paramiko.sftp_attr.CMD_LSTAT
paramiko.sftp_client.CMD_LSTAT
paramiko.sftp_file.CMD_LSTAT
paramiko.sftp_handle.CMD_LSTAT
paramiko.sftp_server.CMD_LSTAT
-paramiko.sftp_si.CMD_LSTAT" class="py-name" href="#" onclick="return doclink('link-83', 'CMD_LSTAT', 'link-83');">CMD_LSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-84" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
+paramiko.sftp_si.CMD_LSTAT" class="py-name" href="#" onclick="return doclink('link-86', 'CMD_LSTAT', 'link-86');">CMD_LSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-87" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
paramiko.sftp_attr.CMD_ATTRS
paramiko.sftp_client.CMD_ATTRS
paramiko.sftp_file.CMD_ATTRS
paramiko.sftp_handle.CMD_ATTRS
paramiko.sftp_server.CMD_ATTRS
-paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-84', 'CMD_ATTRS', 'link-79');">CMD_ATTRS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-85" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-85', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected attributes'</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-86" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-86', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.symlink"></a><div id="SFTPClient.symlink-def"><a name="L355"></a><tt class="py-lineno">355</tt> <a class="py-toggle" href="#" id="SFTPClient.symlink-toggle" onclick="return toggle('SFTPClient.symlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#symlink">symlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">dest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.symlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.symlink-expanded"><a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> Create a symbolic link (shortcut) of the C{source} path at</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> C{destination}.</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-docstring"> @param source: path of the original file</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"><tt class="py-docstring"> @type source: str</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> @param dest: path of the newly created symlink</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> @type dest: str</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">dest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-87', 'CMD_ATTRS', 'link-82');">CMD_ATTRS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-88" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-88', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected attributes'</tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-89" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-89', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.symlink"></a><div id="SFTPClient.symlink-def"><a name="L360"></a><tt class="py-lineno">360</tt> <a class="py-toggle" href="#" id="SFTPClient.symlink-toggle" onclick="return toggle('SFTPClient.symlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#symlink">symlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">dest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.symlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.symlink-expanded"><a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> Create a symbolic link (shortcut) of the C{source} path at</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> C{destination}.</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> @param source: path of the original file</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"><tt class="py-docstring"> @type source: str</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> @param dest: path of the newly created symlink</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> @type dest: str</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">dest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-90" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -868,30 +881,30 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-87', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'symlink(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">unicode</tt><tt class="py-op">:</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-88', 'encode', 'link-11');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name" targets="Variable paramiko.sftp.CMD_SYMLINK=paramiko.sftp-module.html#CMD_SYMLINK,Variable paramiko.sftp_attr.CMD_SYMLINK=paramiko.sftp_attr-module.html#CMD_SYMLINK,Variable paramiko.sftp_client.CMD_SYMLINK=paramiko.sftp_client-module.html#CMD_SYMLINK,Variable paramiko.sftp_file.CMD_SYMLINK=paramiko.sftp_file-module.html#CMD_SYMLINK,Variable paramiko.sftp_handle.CMD_SYMLINK=paramiko.sftp_handle-module.html#CMD_SYMLINK,Variable paramiko.sftp_server.CMD_SYMLINK=paramiko.sftp_server-module.html#CMD_SYMLINK,Variable paramiko.sftp_si.CMD_SYMLINK=paramiko.sftp_si-module.html#CMD_SYMLINK"><a title="paramiko.sftp.CMD_SYMLINK
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-90', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'symlink(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">unicode</tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-91', 'encode', 'link-12');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-92" class="py-name" targets="Variable paramiko.sftp.CMD_SYMLINK=paramiko.sftp-module.html#CMD_SYMLINK,Variable paramiko.sftp_attr.CMD_SYMLINK=paramiko.sftp_attr-module.html#CMD_SYMLINK,Variable paramiko.sftp_client.CMD_SYMLINK=paramiko.sftp_client-module.html#CMD_SYMLINK,Variable paramiko.sftp_file.CMD_SYMLINK=paramiko.sftp_file-module.html#CMD_SYMLINK,Variable paramiko.sftp_handle.CMD_SYMLINK=paramiko.sftp_handle-module.html#CMD_SYMLINK,Variable paramiko.sftp_server.CMD_SYMLINK=paramiko.sftp_server-module.html#CMD_SYMLINK,Variable paramiko.sftp_si.CMD_SYMLINK=paramiko.sftp_si-module.html#CMD_SYMLINK"><a title="paramiko.sftp.CMD_SYMLINK
paramiko.sftp_attr.CMD_SYMLINK
paramiko.sftp_client.CMD_SYMLINK
paramiko.sftp_file.CMD_SYMLINK
paramiko.sftp_handle.CMD_SYMLINK
paramiko.sftp_server.CMD_SYMLINK
-paramiko.sftp_si.CMD_SYMLINK" class="py-name" href="#" onclick="return doclink('link-89', 'CMD_SYMLINK', 'link-89');">CMD_SYMLINK</a></tt><tt class="py-op">,</tt> <tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.chmod"></a><div id="SFTPClient.chmod-def"><a name="L371"></a><tt class="py-lineno">371</tt> <a class="py-toggle" href="#" id="SFTPClient.chmod-toggle" onclick="return toggle('SFTPClient.chmod');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chmod">chmod</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.chmod-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chmod-expanded"><a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> Change the mode (permissions) of a file. The permissions are</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> unix-style and identical to those used by python's C{os.chmod}</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"><tt class="py-docstring"> function.</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to change the permissions of</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: new permissions</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: int</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-90" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_SYMLINK" class="py-name" href="#" onclick="return doclink('link-92', 'CMD_SYMLINK', 'link-92');">CMD_SYMLINK</a></tt><tt class="py-op">,</tt> <tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.chmod"></a><div id="SFTPClient.chmod-def"><a name="L376"></a><tt class="py-lineno">376</tt> <a class="py-toggle" href="#" id="SFTPClient.chmod-toggle" onclick="return toggle('SFTPClient.chmod');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chmod">chmod</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.chmod-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chmod-expanded"><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-docstring"> Change the mode (permissions) of a file. The permissions are</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-docstring"> unix-style and identical to those used by python's C{os.chmod}</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"><tt class="py-docstring"> function.</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to change the permissions of</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"> @param mode: new permissions</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: int</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -912,33 +925,33 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-90', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chmod(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-91', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-92" class="py-name" targets="Variable paramiko.sftp.CMD_SETSTAT=paramiko.sftp-module.html#CMD_SETSTAT,Variable paramiko.sftp_attr.CMD_SETSTAT=paramiko.sftp_attr-module.html#CMD_SETSTAT,Variable paramiko.sftp_client.CMD_SETSTAT=paramiko.sftp_client-module.html#CMD_SETSTAT,Variable paramiko.sftp_file.CMD_SETSTAT=paramiko.sftp_file-module.html#CMD_SETSTAT,Variable paramiko.sftp_handle.CMD_SETSTAT=paramiko.sftp_handle-module.html#CMD_SETSTAT,Variable paramiko.sftp_server.CMD_SETSTAT=paramiko.sftp_server-module.html#CMD_SETSTAT,Variable paramiko.sftp_si.CMD_SETSTAT=paramiko.sftp_si-module.html#CMD_SETSTAT"><a title="paramiko.sftp.CMD_SETSTAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-93', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chmod(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-94" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-94', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name" targets="Variable paramiko.sftp.CMD_SETSTAT=paramiko.sftp-module.html#CMD_SETSTAT,Variable paramiko.sftp_attr.CMD_SETSTAT=paramiko.sftp_attr-module.html#CMD_SETSTAT,Variable paramiko.sftp_client.CMD_SETSTAT=paramiko.sftp_client-module.html#CMD_SETSTAT,Variable paramiko.sftp_file.CMD_SETSTAT=paramiko.sftp_file-module.html#CMD_SETSTAT,Variable paramiko.sftp_handle.CMD_SETSTAT=paramiko.sftp_handle-module.html#CMD_SETSTAT,Variable paramiko.sftp_server.CMD_SETSTAT=paramiko.sftp_server-module.html#CMD_SETSTAT,Variable paramiko.sftp_si.CMD_SETSTAT=paramiko.sftp_si-module.html#CMD_SETSTAT"><a title="paramiko.sftp.CMD_SETSTAT
paramiko.sftp_attr.CMD_SETSTAT
paramiko.sftp_client.CMD_SETSTAT
paramiko.sftp_file.CMD_SETSTAT
paramiko.sftp_handle.CMD_SETSTAT
paramiko.sftp_server.CMD_SETSTAT
-paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-92', 'CMD_SETSTAT', 'link-92');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.chown"></a><div id="SFTPClient.chown-def"><a name="L388"></a><tt class="py-lineno">388</tt> <a class="py-toggle" href="#" id="SFTPClient.chown-toggle" onclick="return toggle('SFTPClient.chown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chown">chown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">uid</tt><tt class="py-op">,</tt> <tt class="py-param">gid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.chown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chown-expanded"><a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"><tt class="py-docstring"> Change the owner (C{uid}) and group (C{gid}) of a file. As with</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"><tt class="py-docstring"> python's C{os.chown} function, you must pass both arguments, so if you</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"><tt class="py-docstring"> only want to change one, use L{stat} first to retrieve the current</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"><tt class="py-docstring"> owner and group.</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to change the owner and group of</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> @param uid: new owner's uid</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> @type uid: int</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> @param gid: new group id</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> @type gid: int</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-95', 'CMD_SETSTAT', 'link-95');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.chown"></a><div id="SFTPClient.chown-def"><a name="L393"></a><tt class="py-lineno">393</tt> <a class="py-toggle" href="#" id="SFTPClient.chown-toggle" onclick="return toggle('SFTPClient.chown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chown">chown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">uid</tt><tt class="py-op">,</tt> <tt class="py-param">gid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.chown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chown-expanded"><a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-docstring"> Change the owner (C{uid}) and group (C{gid}) of a file. As with</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> python's C{os.chown} function, you must pass both arguments, so if you</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> only want to change one, use L{stat} first to retrieve the current</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> owner and group.</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to change the owner and group of</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"><tt class="py-docstring"> @param uid: new owner's uid</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"><tt class="py-docstring"> @type uid: int</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"><tt class="py-docstring"> @param gid: new group id</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-docstring"> @type gid: int</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -959,36 +972,36 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-93', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chown(%r, %r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">uid</tt><tt class="py-op">,</tt> <tt class="py-name">gid</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-94" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-94', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> <tt class="py-op">=</tt> <tt class="py-name">uid</tt><tt class="py-op">,</tt> <tt class="py-name">gid</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-96', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chown(%r, %r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">uid</tt><tt class="py-op">,</tt> <tt class="py-name">gid</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-97', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> <tt class="py-op">=</tt> <tt class="py-name">uid</tt><tt class="py-op">,</tt> <tt class="py-name">gid</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
paramiko.sftp_attr.CMD_SETSTAT
paramiko.sftp_client.CMD_SETSTAT
paramiko.sftp_file.CMD_SETSTAT
paramiko.sftp_handle.CMD_SETSTAT
paramiko.sftp_server.CMD_SETSTAT
-paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-95', 'CMD_SETSTAT', 'link-92');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.utime"></a><div id="SFTPClient.utime-def"><a name="L408"></a><tt class="py-lineno">408</tt> <a class="py-toggle" href="#" id="SFTPClient.utime-toggle" onclick="return toggle('SFTPClient.utime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#utime">utime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">times</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.utime-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.utime-expanded"><a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"><tt class="py-docstring"> Set the access and modified times of the file specified by C{path}. If</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"><tt class="py-docstring"> C{times} is C{None}, then the file's access and modified times are set</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"><tt class="py-docstring"> to the current time. Otherwise, C{times} must be a 2-tuple of numbers,</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"><tt class="py-docstring"> of the form C{(atime, mtime)}, which is used to set the access and</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"><tt class="py-docstring"> modified times, respectively. This bizarre API is mimicked from python</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"><tt class="py-docstring"> for the sake of consistency -- I apologize.</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to modify</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"><tt class="py-docstring"> @param times: C{None} or a tuple of (access time, modified time) in</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"><tt class="py-docstring"> standard internet epoch time (seconds since 01 January 1970 GMT)</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"><tt class="py-docstring"> @type times: tuple(int)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">times</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-98', 'CMD_SETSTAT', 'link-95');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.utime"></a><div id="SFTPClient.utime-def"><a name="L413"></a><tt class="py-lineno">413</tt> <a class="py-toggle" href="#" id="SFTPClient.utime-toggle" onclick="return toggle('SFTPClient.utime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#utime">utime</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">times</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.utime-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.utime-expanded"><a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"><tt class="py-docstring"> Set the access and modified times of the file specified by C{path}. If</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"><tt class="py-docstring"> C{times} is C{None}, then the file's access and modified times are set</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"><tt class="py-docstring"> to the current time. Otherwise, C{times} must be a 2-tuple of numbers,</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-docstring"> of the form C{(atime, mtime)}, which is used to set the access and</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"><tt class="py-docstring"> modified times, respectively. This bizarre API is mimicked from python</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"><tt class="py-docstring"> for the sake of consistency -- I apologize.</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to modify</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"><tt class="py-docstring"> @param times: C{None} or a tuple of (access time, modified time) in</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"><tt class="py-docstring"> standard internet epoch time (seconds since 01 January 1970 GMT)</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"><tt class="py-docstring"> @type times: tuple(int)</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">times</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1009,30 +1022,30 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-96', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'utime(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">times</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-97', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-op">=</tt> <tt class="py-name">times</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-99', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'utime(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">times</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-100" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-100', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-op">=</tt> <tt class="py-name">times</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
paramiko.sftp_attr.CMD_SETSTAT
paramiko.sftp_client.CMD_SETSTAT
paramiko.sftp_file.CMD_SETSTAT
paramiko.sftp_handle.CMD_SETSTAT
paramiko.sftp_server.CMD_SETSTAT
-paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-98', 'CMD_SETSTAT', 'link-92');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.truncate"></a><div id="SFTPClient.truncate-def"><a name="L431"></a><tt class="py-lineno">431</tt> <a class="py-toggle" href="#" id="SFTPClient.truncate-toggle" onclick="return toggle('SFTPClient.truncate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#truncate">truncate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.truncate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.truncate-expanded"><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"><tt class="py-docstring"> Change the size of the file specified by C{path}. This usually extends</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"><tt class="py-docstring"> or shrinks the size of the file, just like the C{truncate()} method on</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"><tt class="py-docstring"> python file objects.</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to modify</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> @param size: the new size of the file</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> @type size: int or long</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-101', 'CMD_SETSTAT', 'link-95');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.truncate"></a><div id="SFTPClient.truncate-def"><a name="L436"></a><tt class="py-lineno">436</tt> <a class="py-toggle" href="#" id="SFTPClient.truncate-toggle" onclick="return toggle('SFTPClient.truncate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#truncate">truncate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.truncate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.truncate-expanded"><a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"><tt class="py-docstring"> Change the size of the file specified by C{path}. This usually extends</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> or shrinks the size of the file, just like the C{truncate()} method on</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> python file objects.</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the file to modify</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"><tt class="py-docstring"> @param size: the new size of the file</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"><tt class="py-docstring"> @type size: int or long</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1053,30 +1066,30 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-99', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'truncate(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-100" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-100', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-102', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'truncate(%r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-103" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-103', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">=</tt> <tt class="py-name">size</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-104" class="py-name"><a title="paramiko.sftp.CMD_SETSTAT
paramiko.sftp_attr.CMD_SETSTAT
paramiko.sftp_client.CMD_SETSTAT
paramiko.sftp_file.CMD_SETSTAT
paramiko.sftp_handle.CMD_SETSTAT
paramiko.sftp_server.CMD_SETSTAT
-paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-101', 'CMD_SETSTAT', 'link-92');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.readlink"></a><div id="SFTPClient.readlink-def"><a name="L448"></a><tt class="py-lineno">448</tt> <a class="py-toggle" href="#" id="SFTPClient.readlink-toggle" onclick="return toggle('SFTPClient.readlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#readlink">readlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.readlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.readlink-expanded"><a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"><tt class="py-docstring"> Return the target of a symbolic link (shortcut). You can use</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-docstring"> L{symlink} to create these. The result may be either an absolute or</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-docstring"> relative pathname.</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the symbolic link file</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"><tt class="py-docstring"> @return: target path</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-104', 'CMD_SETSTAT', 'link-95');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.readlink"></a><div id="SFTPClient.readlink-def"><a name="L453"></a><tt class="py-lineno">453</tt> <a class="py-toggle" href="#" id="SFTPClient.readlink-toggle" onclick="return toggle('SFTPClient.readlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#readlink">readlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.readlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.readlink-expanded"><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"><tt class="py-docstring"> Return the target of a symbolic link (shortcut). You can use</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"><tt class="py-docstring"> L{symlink} to create these. The result may be either an absolute or</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> relative pathname.</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path of the symbolic link file</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"><tt class="py-docstring"> @return: target path</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1097,45 +1110,45 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-102', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'readlink(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-103" class="py-name" targets="Variable paramiko.sftp.CMD_READLINK=paramiko.sftp-module.html#CMD_READLINK,Variable paramiko.sftp_attr.CMD_READLINK=paramiko.sftp_attr-module.html#CMD_READLINK,Variable paramiko.sftp_client.CMD_READLINK=paramiko.sftp_client-module.html#CMD_READLINK,Variable paramiko.sftp_file.CMD_READLINK=paramiko.sftp_file-module.html#CMD_READLINK,Variable paramiko.sftp_handle.CMD_READLINK=paramiko.sftp_handle-module.html#CMD_READLINK,Variable paramiko.sftp_server.CMD_READLINK=paramiko.sftp_server-module.html#CMD_READLINK,Variable paramiko.sftp_si.CMD_READLINK=paramiko.sftp_si-module.html#CMD_READLINK"><a title="paramiko.sftp.CMD_READLINK
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-105', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'readlink(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-106" class="py-name" targets="Variable paramiko.sftp.CMD_READLINK=paramiko.sftp-module.html#CMD_READLINK,Variable paramiko.sftp_attr.CMD_READLINK=paramiko.sftp_attr-module.html#CMD_READLINK,Variable paramiko.sftp_client.CMD_READLINK=paramiko.sftp_client-module.html#CMD_READLINK,Variable paramiko.sftp_file.CMD_READLINK=paramiko.sftp_file-module.html#CMD_READLINK,Variable paramiko.sftp_handle.CMD_READLINK=paramiko.sftp_handle-module.html#CMD_READLINK,Variable paramiko.sftp_server.CMD_READLINK=paramiko.sftp_server-module.html#CMD_READLINK,Variable paramiko.sftp_si.CMD_READLINK=paramiko.sftp_si-module.html#CMD_READLINK"><a title="paramiko.sftp.CMD_READLINK
paramiko.sftp_attr.CMD_READLINK
paramiko.sftp_client.CMD_READLINK
paramiko.sftp_file.CMD_READLINK
paramiko.sftp_handle.CMD_READLINK
paramiko.sftp_server.CMD_READLINK
-paramiko.sftp_si.CMD_READLINK" class="py-name" href="#" onclick="return doclink('link-103', 'CMD_READLINK', 'link-103');">CMD_READLINK</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-104" class="py-name"><a title="paramiko.sftp.CMD_NAME
+paramiko.sftp_si.CMD_READLINK" class="py-name" href="#" onclick="return doclink('link-106', 'CMD_READLINK', 'link-106');">CMD_READLINK</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-107" class="py-name"><a title="paramiko.sftp.CMD_NAME
paramiko.sftp_attr.CMD_NAME
paramiko.sftp_client.CMD_NAME
paramiko.sftp_file.CMD_NAME
paramiko.sftp_handle.CMD_NAME
paramiko.sftp_server.CMD_NAME
-paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-104', 'CMD_NAME', 'link-41');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-105" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-105', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-106', 'get_int', 'link-43');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-107" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-107', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Readlink returned %d results'</tt> <tt class="py-op">%</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-108', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.normalize"></a><div id="SFTPClient.normalize-def"><a name="L471"></a><tt class="py-lineno">471</tt> <a class="py-toggle" href="#" id="SFTPClient.normalize-toggle" onclick="return toggle('SFTPClient.normalize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#normalize">normalize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.normalize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.normalize-expanded"><a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"><tt class="py-docstring"> Return the normalized path (on the server) of a given path. This</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"><tt class="py-docstring"> can be used to quickly resolve symbolic links or determine what the</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"><tt class="py-docstring"> server is considering to be the "current folder" (by passing C{'.'}</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"><tt class="py-docstring"> as C{path}).</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to be normalized</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"><tt class="py-docstring"> @return: normalized form of the given path</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the path can't be resolved on the server</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-109" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-107', 'CMD_NAME', 'link-44');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-108" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-108', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-109', 'get_int', 'link-46');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-110" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-110', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Readlink returned %d results'</tt> <tt class="py-op">%</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-111', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.normalize"></a><div id="SFTPClient.normalize-def"><a name="L476"></a><tt class="py-lineno">476</tt> <a class="py-toggle" href="#" id="SFTPClient.normalize-toggle" onclick="return toggle('SFTPClient.normalize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#normalize">normalize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.normalize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.normalize-expanded"><a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"><tt class="py-docstring"> Return the normalized path (on the server) of a given path. This</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"><tt class="py-docstring"> can be used to quickly resolve symbolic links or determine what the</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"><tt class="py-docstring"> server is considering to be the "current folder" (by passing C{'.'}</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"><tt class="py-docstring"> as C{path}).</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path to be normalized</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"><tt class="py-docstring"> @return: normalized form of the given path</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the path can't be resolved on the server</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_adjust_cwd</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-112" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1156,101 +1169,116 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-109', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'normalize(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-110" class="py-name" targets="Variable paramiko.sftp.CMD_REALPATH=paramiko.sftp-module.html#CMD_REALPATH,Variable paramiko.sftp_attr.CMD_REALPATH=paramiko.sftp_attr-module.html#CMD_REALPATH,Variable paramiko.sftp_client.CMD_REALPATH=paramiko.sftp_client-module.html#CMD_REALPATH,Variable paramiko.sftp_file.CMD_REALPATH=paramiko.sftp_file-module.html#CMD_REALPATH,Variable paramiko.sftp_handle.CMD_REALPATH=paramiko.sftp_handle-module.html#CMD_REALPATH,Variable paramiko.sftp_server.CMD_REALPATH=paramiko.sftp_server-module.html#CMD_REALPATH,Variable paramiko.sftp_si.CMD_REALPATH=paramiko.sftp_si-module.html#CMD_REALPATH"><a title="paramiko.sftp.CMD_REALPATH
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-112', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'normalize(%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-113" class="py-name" targets="Variable paramiko.sftp.CMD_REALPATH=paramiko.sftp-module.html#CMD_REALPATH,Variable paramiko.sftp_attr.CMD_REALPATH=paramiko.sftp_attr-module.html#CMD_REALPATH,Variable paramiko.sftp_client.CMD_REALPATH=paramiko.sftp_client-module.html#CMD_REALPATH,Variable paramiko.sftp_file.CMD_REALPATH=paramiko.sftp_file-module.html#CMD_REALPATH,Variable paramiko.sftp_handle.CMD_REALPATH=paramiko.sftp_handle-module.html#CMD_REALPATH,Variable paramiko.sftp_server.CMD_REALPATH=paramiko.sftp_server-module.html#CMD_REALPATH,Variable paramiko.sftp_si.CMD_REALPATH=paramiko.sftp_si-module.html#CMD_REALPATH"><a title="paramiko.sftp.CMD_REALPATH
paramiko.sftp_attr.CMD_REALPATH
paramiko.sftp_client.CMD_REALPATH
paramiko.sftp_file.CMD_REALPATH
paramiko.sftp_handle.CMD_REALPATH
paramiko.sftp_server.CMD_REALPATH
-paramiko.sftp_si.CMD_REALPATH" class="py-name" href="#" onclick="return doclink('link-110', 'CMD_REALPATH', 'link-110');">CMD_REALPATH</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-111" class="py-name"><a title="paramiko.sftp.CMD_NAME
+paramiko.sftp_si.CMD_REALPATH" class="py-name" href="#" onclick="return doclink('link-113', 'CMD_REALPATH', 'link-113');">CMD_REALPATH</a></tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-114" class="py-name"><a title="paramiko.sftp.CMD_NAME
paramiko.sftp_attr.CMD_NAME
paramiko.sftp_client.CMD_NAME
paramiko.sftp_file.CMD_NAME
paramiko.sftp_handle.CMD_NAME
paramiko.sftp_server.CMD_NAME
-paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-111', 'CMD_NAME', 'link-41');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-112" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-112', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-113', 'get_int', 'link-43');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-114" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-114', 'SFTPError', 'link-38');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Realpath returned %d results'</tt> <tt class="py-op">%</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-115', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.chdir"></a><div id="SFTPClient.chdir-def"><a name="L495"></a><tt class="py-lineno">495</tt> <a class="py-toggle" href="#" id="SFTPClient.chdir-toggle" onclick="return toggle('SFTPClient.chdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chdir">chdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.chdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chdir-expanded"><a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"><tt class="py-docstring"> Change the "current directory" of this SFTP session. Since SFTP</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-docstring"> doesn't really have the concept of a current working directory, this</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"> is emulated by paramiko. Once you use this method to set a working</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"><tt class="py-docstring"> directory, all operations on this SFTPClient object will be relative</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"><tt class="py-docstring"> to that path.</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"><tt class="py-docstring"> @param path: new current working directory</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the requested path doesn't exist on the server</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Method paramiko.SFTPClient.normalize()=paramiko.SFTPClient-class.html#normalize"><a title="paramiko.SFTPClient.normalize" class="py-name" href="#" onclick="return doclink('link-116', 'normalize', 'link-116');">normalize</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.getcwd"></a><div id="SFTPClient.getcwd-def"><a name="L512"></a><tt class="py-lineno">512</tt> <a class="py-toggle" href="#" id="SFTPClient.getcwd-toggle" onclick="return toggle('SFTPClient.getcwd');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#getcwd">getcwd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.getcwd-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.getcwd-expanded"><a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"><tt class="py-docstring"> Return the "current working directory" for this SFTP session, as</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"><tt class="py-docstring"> emulated by paramiko. If no directory has been set with L{chdir},</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"><tt class="py-docstring"> this method will return C{None}.</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"><tt class="py-docstring"> @return: the current working directory on the server, or C{None}</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> </tt>
-</div><a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.put"></a><div id="SFTPClient.put-def"><a name="L525"></a><tt class="py-lineno">525</tt> <a class="py-toggle" href="#" id="SFTPClient.put-toggle" onclick="return toggle('SFTPClient.put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#put">put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">localpath</tt><tt class="py-op">,</tt> <tt class="py-param">remotepath</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.put-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.put-expanded"><a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> Copy a local file (C{localpath}) to the SFTP server as C{remotepath}.</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> Any exception raised by operations will be passed through. This</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> method is primarily provided as a convenience.</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"><tt class="py-docstring"> The SFTP operations use pipelining for speed.</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt class="py-docstring"> @param localpath: the local file to copy</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"><tt class="py-docstring"> @type localpath: str</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"><tt class="py-docstring"> @param remotepath: the destination path on the SFTP server</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"><tt class="py-docstring"> @type remotepath: str</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"><tt class="py-docstring"> @param callback: optional callback function that accepts the bytes</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-docstring"> transferred so far and the total bytes to be transferred</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"><tt class="py-docstring"> @type callback: function(int, int)</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">file_size</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Method paramiko.SFTPClient.stat()=paramiko.SFTPClient-class.html#stat,Method paramiko.SFTPFile.stat()=paramiko.SFTPFile-class.html#stat,Method paramiko.SFTPHandle.stat()=paramiko.SFTPHandle-class.html#stat,Method paramiko.SFTPServerInterface.stat()=paramiko.SFTPServerInterface-class.html#stat"><a title="paramiko.SFTPClient.stat
+paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-114', 'CMD_NAME', 'link-44');">CMD_NAME</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-115" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-115', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected name response'</tt><tt class="py-op">)</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-116', 'get_int', 'link-46');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">count</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-117" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-117', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Realpath returned %d results'</tt> <tt class="py-op">%</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_to_unicode</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-118', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.chdir"></a><div id="SFTPClient.chdir-def"><a name="L500"></a><tt class="py-lineno">500</tt> <a class="py-toggle" href="#" id="SFTPClient.chdir-toggle" onclick="return toggle('SFTPClient.chdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#chdir">chdir</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.chdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.chdir-expanded"><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"><tt class="py-docstring"> Change the "current directory" of this SFTP session. Since SFTP</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"><tt class="py-docstring"> doesn't really have the concept of a current working directory, this</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"><tt class="py-docstring"> is emulated by paramiko. Once you use this method to set a working</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"><tt class="py-docstring"> directory, all operations on this SFTPClient object will be relative</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"><tt class="py-docstring"> to that path. You can pass in C{None} to stop using a current working</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"><tt class="py-docstring"> directory.</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"><tt class="py-docstring"> @param path: new current working directory</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the requested path doesn't exist on the server</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">path</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-119" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-117', 'stat', 'link-117');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">fl</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="paramiko.SFTPClient.file
-paramiko.file" class="py-name" href="#" onclick="return doclink('link-118', 'file', 'link-64');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-name">fr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="paramiko.SFTPClient.file
-paramiko.file" class="py-name" href="#" onclick="return doclink('link-119', 'file', 'link-64');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method paramiko.SFTPFile.set_pipelined()=paramiko.SFTPFile-class.html#set_pipelined"><a title="paramiko.SFTPFile.set_pipelined" class="py-name" href="#" onclick="return doclink('link-120', 'set_pipelined', 'link-120');">set_pipelined</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-119', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISDIR</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.SFTPFile.stat
+paramiko.SFTPHandle.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-120', 'stat', 'link-0');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-121" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-121', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOTDIR</tt><tt class="py-op">,</tt> <tt class="py-string">"%s: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">strerror</tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOTDIR</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method paramiko.SFTPClient.normalize()=paramiko.SFTPClient-class.html#normalize"><a title="paramiko.SFTPClient.normalize" class="py-name" href="#" onclick="return doclink('link-122', 'normalize', 'link-122');">normalize</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-123', 'encode', 'link-12');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.getcwd"></a><div id="SFTPClient.getcwd-def"><a name="L523"></a><tt class="py-lineno">523</tt> <a class="py-toggle" href="#" id="SFTPClient.getcwd-toggle" onclick="return toggle('SFTPClient.getcwd');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#getcwd">getcwd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.getcwd-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.getcwd-expanded"><a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"> Return the "current working directory" for this SFTP session, as</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> emulated by paramiko. If no directory has been set with L{chdir},</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> this method will return C{None}.</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> @return: the current working directory on the server, or C{None}</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> </tt>
+</div><a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.put"></a><div id="SFTPClient.put-def"><a name="L536"></a><tt class="py-lineno">536</tt> <a class="py-toggle" href="#" id="SFTPClient.put-toggle" onclick="return toggle('SFTPClient.put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#put">put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">localpath</tt><tt class="py-op">,</tt> <tt class="py-param">remotepath</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.put-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.put-expanded"><a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-docstring"> Copy a local file (C{localpath}) to the SFTP server as C{remotepath}.</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"><tt class="py-docstring"> Any exception raised by operations will be passed through. This</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"><tt class="py-docstring"> method is primarily provided as a convenience.</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-docstring"> The SFTP operations use pipelining for speed.</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"> @param localpath: the local file to copy</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-docstring"> @type localpath: str</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-docstring"> @param remotepath: the destination path on the SFTP server</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"><tt class="py-docstring"> @type remotepath: str</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"><tt class="py-docstring"> @param callback: optional callback function that accepts the bytes</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"><tt class="py-docstring"> transferred so far and the total bytes to be transferred</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"><tt class="py-docstring"> @type callback: function(int, int)</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object containing attributes about the given file</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">file_size</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.SFTPFile.stat
+paramiko.SFTPHandle.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-124', 'stat', 'link-0');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">fl</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-125', 'file', 'link-67');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">fr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-126', 'file', 'link-67');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method paramiko.SFTPFile.set_pipelined()=paramiko.SFTPFile-class.html#set_pipelined"><a title="paramiko.SFTPFile.set_pipelined" class="py-name" href="#" onclick="return doclink('link-127', 'set_pipelined', 'link-127');">set_pipelined</a></tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-121', 'read', 'link-121');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">32768</tt><tt class="py-op">)</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-122', 'write', 'link-122');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">file_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.Agent.close
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-128', 'read', 'link-128');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">32768</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-129', 'write', 'link-129');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">file_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1261,8 +1289,9 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-123', 'close', 'link-33');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="paramiko.Agent.close
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-130', 'close', 'link-36');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1273,54 +1302,57 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-124', 'close', 'link-33');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-131', 'close', 'link-36');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-125', 'stat', 'link-117');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'size mismatch in put! %d != %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
-</div><a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient.get"></a><div id="SFTPClient.get-def"><a name="L567"></a><tt class="py-lineno">567</tt> <a class="py-toggle" href="#" id="SFTPClient.get-toggle" onclick="return toggle('SFTPClient.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">remotepath</tt><tt class="py-op">,</tt> <tt class="py-param">localpath</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.get-expanded"><a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"><tt class="py-docstring"> Copy a remote file (C{remotepath}) from the SFTP server to the local</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"><tt class="py-docstring"> host as C{localpath}. Any exception raised by operations will be</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"><tt class="py-docstring"> passed through. This method is primarily provided as a convenience.</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"><tt class="py-docstring"> @param remotepath: the remote file to copy</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"><tt class="py-docstring"> @type remotepath: str</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"><tt class="py-docstring"> @param localpath: the destination path on the local host</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"><tt class="py-docstring"> @type localpath: str</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"><tt class="py-docstring"> @param callback: optional callback function that accepts the bytes</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"><tt class="py-docstring"> transferred so far and the total bytes to be transferred</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"><tt class="py-docstring"> @type callback: function(int, int)</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-name">fr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.SFTPClient.file
-paramiko.file" class="py-name" href="#" onclick="return doclink('link-126', 'file', 'link-64');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-name">file_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-132', 'stat', 'link-0');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">)</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'size mismatch in put! %d != %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
+</div><a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient.get"></a><div id="SFTPClient.get-def"><a name="L582"></a><tt class="py-lineno">582</tt> <a class="py-toggle" href="#" id="SFTPClient.get-toggle" onclick="return toggle('SFTPClient.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">remotepath</tt><tt class="py-op">,</tt> <tt class="py-param">localpath</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient.get-expanded"><a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"><tt class="py-docstring"> Copy a remote file (C{remotepath}) from the SFTP server to the local</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"><tt class="py-docstring"> host as C{localpath}. Any exception raised by operations will be</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"><tt class="py-docstring"> passed through. This method is primarily provided as a convenience.</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"><tt class="py-docstring"> @param remotepath: the remote file to copy</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"><tt class="py-docstring"> @type remotepath: str</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"><tt class="py-docstring"> @param localpath: the destination path on the local host</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"><tt class="py-docstring"> @type localpath: str</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"><tt class="py-docstring"> @param callback: optional callback function that accepts the bytes</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"><tt class="py-docstring"> transferred so far and the total bytes to be transferred</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"><tt class="py-docstring"> (since 1.7.4)</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"><tt class="py-docstring"> @type callback: function(int, int)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-name">fr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-133', 'file', 'link-67');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-name">file_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-127', 'stat', 'link-117');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method paramiko.SFTPFile.prefetch()=paramiko.SFTPFile-class.html#prefetch"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-128', 'prefetch', 'link-128');">prefetch</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-name">fl</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="paramiko.SFTPClient.file
-paramiko.file" class="py-name" href="#" onclick="return doclink('link-129', 'file', 'link-64');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-134', 'stat', 'link-0');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">remotepath</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Method paramiko.SFTPFile.prefetch()=paramiko.SFTPFile-class.html#prefetch"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-135', 'prefetch', 'link-135');">prefetch</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-name">fl</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-136', 'file', 'link-67');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-130', 'read', 'link-121');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">32768</tt><tt class="py-op">)</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-131', 'write', 'link-122');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">file_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Agent.close
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-137', 'read', 'link-128');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">32768</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-138', 'write', 'link-129');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">file_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">fl</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1331,8 +1363,9 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-132', 'close', 'link-33');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.Agent.close
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-139', 'close', 'link-36');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-name">fr</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1343,58 +1376,58 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-133', 'close', 'link-33');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-140', 'close', 'link-36');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-134', 'stat', 'link-117');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">)</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'size mismatch in get! %d != %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._request"></a><div id="SFTPClient._request-def"><a name="L607"></a><tt class="py-lineno">607</tt> <a class="py-toggle" href="#" id="SFTPClient._request-toggle" onclick="return toggle('SFTPClient._request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_request">_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._request-expanded"><a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_response</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._async_request"></a><div id="SFTPClient._async_request-def"><a name="L611"></a><tt class="py-lineno">611</tt> <a class="py-toggle" href="#" id="SFTPClient._async_request-toggle" onclick="return toggle('SFTPClient._async_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_async_request">_async_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fileobj</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._async_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._async_request-expanded"><a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-comment"># this method may be called from other threads (prefetch)</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-135', 'Message', 'link-135');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-136', 'add_int', 'link-136');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt><tt class="py-op">)</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">arg</tt><tt class="py-op">:</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">int</tt><tt class="py-op">:</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-137', 'add_int', 'link-136');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">long</tt><tt class="py-op">:</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Method paramiko.Message.add_int64()=paramiko.Message-class.html#add_int64"><a title="paramiko.Message.add_int64" class="py-name" href="#" onclick="return doclink('link-138', 'add_int64', 'link-138');">add_int64</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-139', 'add_string', 'link-139');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt id="link-140" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-140', 'SFTPAttributes', 'link-4');">SFTPAttributes</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">_pack</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'unknown type for %r type %r'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fileobj</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">num</tt> </tt>
-</div><a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._read_response"></a><div id="SFTPClient._read_response-def"><a name="L636"></a><tt class="py-lineno">636</tt> <a class="py-toggle" href="#" id="SFTPClient._read_response-toggle" onclick="return toggle('SFTPClient._read_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_read_response">_read_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">waitfor</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._read_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._read_response-expanded"><a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_packet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-141" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-141', 'SSHException', 'link-7');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server connection dropped: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-142', 'Message', 'link-135');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-143', 'get_int', 'link-43');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">num</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">:</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"> <tt class="py-comment"># might be response for a file that was closed before responses came back</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-141', 'stat', 'link-0');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">localpath</tt><tt class="py-op">)</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">!=</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'size mismatch in get! %d != %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._request"></a><div id="SFTPClient._request-def"><a name="L626"></a><tt class="py-lineno">626</tt> <a class="py-toggle" href="#" id="SFTPClient._request-toggle" onclick="return toggle('SFTPClient._request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_request">_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._request-expanded"><a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_response</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._async_request"></a><div id="SFTPClient._async_request-def"><a name="L630"></a><tt class="py-lineno">630</tt> <a class="py-toggle" href="#" id="SFTPClient._async_request-toggle" onclick="return toggle('SFTPClient._async_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_async_request">_async_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fileobj</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._async_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._async_request-expanded"><a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-comment"># this method may be called from other threads (prefetch)</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-142', 'Message', 'link-142');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-143', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt><tt class="py-op">)</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">arg</tt><tt class="py-op">:</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">int</tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-144', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">long</tt><tt class="py-op">:</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method paramiko.Message.add_int64()=paramiko.Message-class.html#add_int64"><a title="paramiko.Message.add_int64" class="py-name" href="#" onclick="return doclink('link-145', 'add_int64', 'link-145');">add_int64</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-146', 'add_string', 'link-146');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt id="link-147" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-147', 'SFTPAttributes', 'link-5');">SFTPAttributes</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">_pack</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'unknown type for %r type %r'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fileobj</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_number</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">num</tt> </tt>
+</div><a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._read_response"></a><div id="SFTPClient._read_response-def"><a name="L655"></a><tt class="py-lineno">655</tt> <a class="py-toggle" href="#" id="SFTPClient._read_response-toggle" onclick="return toggle('SFTPClient._read_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_read_response">_read_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">waitfor</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._read_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._read_response-expanded"><a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_packet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-148" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-148', 'SSHException', 'link-8');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Server connection dropped: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-149" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-149', 'Message', 'link-142');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-150', 'get_int', 'link-46');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">num</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">:</tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> <tt class="py-comment"># might be response for a file that was closed before responses came back</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1415,100 +1448,100 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-144', 'DEBUG', 'link-35');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unexpected response #%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">waitfor</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"> <tt class="py-comment"># just doing a single check</tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">break</tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">num</tt> <tt class="py-op">==</tt> <tt class="py-name">waitfor</tt><tt class="py-op">:</tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> <tt class="py-comment"># synchronous</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-145" class="py-name" targets="Variable paramiko.sftp.CMD_STATUS=paramiko.sftp-module.html#CMD_STATUS,Variable paramiko.sftp_attr.CMD_STATUS=paramiko.sftp_attr-module.html#CMD_STATUS,Variable paramiko.sftp_client.CMD_STATUS=paramiko.sftp_client-module.html#CMD_STATUS,Variable paramiko.sftp_file.CMD_STATUS=paramiko.sftp_file-module.html#CMD_STATUS,Variable paramiko.sftp_handle.CMD_STATUS=paramiko.sftp_handle-module.html#CMD_STATUS,Variable paramiko.sftp_server.CMD_STATUS=paramiko.sftp_server-module.html#CMD_STATUS,Variable paramiko.sftp_si.CMD_STATUS=paramiko.sftp_si-module.html#CMD_STATUS"><a title="paramiko.sftp.CMD_STATUS
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-151', 'DEBUG', 'link-38');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unexpected response #%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">waitfor</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt class="py-comment"># just doing a single check</tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">[</tt><tt class="py-name">num</tt><tt class="py-op">]</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">num</tt> <tt class="py-op">==</tt> <tt class="py-name">waitfor</tt><tt class="py-op">:</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt class="py-comment"># synchronous</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-152" class="py-name" targets="Variable paramiko.sftp.CMD_STATUS=paramiko.sftp-module.html#CMD_STATUS,Variable paramiko.sftp_attr.CMD_STATUS=paramiko.sftp_attr-module.html#CMD_STATUS,Variable paramiko.sftp_client.CMD_STATUS=paramiko.sftp_client-module.html#CMD_STATUS,Variable paramiko.sftp_file.CMD_STATUS=paramiko.sftp_file-module.html#CMD_STATUS,Variable paramiko.sftp_handle.CMD_STATUS=paramiko.sftp_handle-module.html#CMD_STATUS,Variable paramiko.sftp_server.CMD_STATUS=paramiko.sftp_server-module.html#CMD_STATUS,Variable paramiko.sftp_si.CMD_STATUS=paramiko.sftp_si-module.html#CMD_STATUS"><a title="paramiko.sftp.CMD_STATUS
paramiko.sftp_attr.CMD_STATUS
paramiko.sftp_client.CMD_STATUS
paramiko.sftp_file.CMD_STATUS
paramiko.sftp_handle.CMD_STATUS
paramiko.sftp_server.CMD_STATUS
-paramiko.sftp_si.CMD_STATUS" class="py-name" href="#" onclick="return doclink('link-145', 'CMD_STATUS', 'link-145');">CMD_STATUS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_convert_status</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> </tt>
-<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fileobj</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt><tt class="py-op">.</tt><tt class="py-name">_async_response</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">waitfor</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-comment"># just doing a single check</tt> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">break</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._finish_responses"></a><div id="SFTPClient._finish_responses-def"><a name="L665"></a><tt class="py-lineno">665</tt> <a class="py-toggle" href="#" id="SFTPClient._finish_responses-toggle" onclick="return toggle('SFTPClient._finish_responses');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_finish_responses">_finish_responses</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fileobj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._finish_responses-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._finish_responses-expanded"><a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">fileobj</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
-paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-146', 'values', 'link-146');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_response</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt><tt class="py-op">.</tt><tt class="py-name">_check_exception</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._convert_status"></a><div id="SFTPClient._convert_status-def"><a name="L670"></a><tt class="py-lineno">670</tt> <a class="py-toggle" href="#" id="SFTPClient._convert_status-toggle" onclick="return toggle('SFTPClient._convert_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_convert_status">_convert_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._convert_status-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._convert_status-expanded"><a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"><tt class="py-docstring"> Raises EOFError or IOError on error status; otherwise does nothing.</tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-147', 'get_int', 'link-43');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-148', 'get_string', 'link-39');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-149" class="py-name" targets="Variable paramiko.sftp.SFTP_OK=paramiko.sftp-module.html#SFTP_OK,Variable paramiko.sftp_attr.SFTP_OK=paramiko.sftp_attr-module.html#SFTP_OK,Variable paramiko.sftp_client.SFTP_OK=paramiko.sftp_client-module.html#SFTP_OK,Variable paramiko.sftp_file.SFTP_OK=paramiko.sftp_file-module.html#SFTP_OK,Variable paramiko.sftp_handle.SFTP_OK=paramiko.sftp_handle-module.html#SFTP_OK,Variable paramiko.sftp_server.SFTP_OK=paramiko.sftp_server-module.html#SFTP_OK,Variable paramiko.sftp_si.SFTP_OK=paramiko.sftp_si-module.html#SFTP_OK"><a title="paramiko.sftp.SFTP_OK
+paramiko.sftp_si.CMD_STATUS" class="py-name" href="#" onclick="return doclink('link-152', 'CMD_STATUS', 'link-152');">CMD_STATUS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_convert_status</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fileobj</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt><tt class="py-op">.</tt><tt class="py-name">_async_response</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">waitfor</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-comment"># just doing a single check</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._finish_responses"></a><div id="SFTPClient._finish_responses-def"><a name="L684"></a><tt class="py-lineno">684</tt> <a class="py-toggle" href="#" id="SFTPClient._finish_responses-toggle" onclick="return toggle('SFTPClient._finish_responses');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_finish_responses">_finish_responses</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fileobj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._finish_responses-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._finish_responses-expanded"><a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">fileobj</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expecting</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
+paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-153', 'values', 'link-153');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_response</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-name">fileobj</tt><tt class="py-op">.</tt><tt class="py-name">_check_exception</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._convert_status"></a><div id="SFTPClient._convert_status-def"><a name="L689"></a><tt class="py-lineno">689</tt> <a class="py-toggle" href="#" id="SFTPClient._convert_status-toggle" onclick="return toggle('SFTPClient._convert_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_convert_status">_convert_status</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._convert_status-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._convert_status-expanded"><a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"><tt class="py-docstring"> Raises EOFError or IOError on error status; otherwise does nothing.</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-154', 'get_int', 'link-46');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-155', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-156" class="py-name" targets="Variable paramiko.sftp.SFTP_OK=paramiko.sftp-module.html#SFTP_OK,Variable paramiko.sftp_attr.SFTP_OK=paramiko.sftp_attr-module.html#SFTP_OK,Variable paramiko.sftp_client.SFTP_OK=paramiko.sftp_client-module.html#SFTP_OK,Variable paramiko.sftp_file.SFTP_OK=paramiko.sftp_file-module.html#SFTP_OK,Variable paramiko.sftp_handle.SFTP_OK=paramiko.sftp_handle-module.html#SFTP_OK,Variable paramiko.sftp_server.SFTP_OK=paramiko.sftp_server-module.html#SFTP_OK,Variable paramiko.sftp_si.SFTP_OK=paramiko.sftp_si-module.html#SFTP_OK"><a title="paramiko.sftp.SFTP_OK
paramiko.sftp_attr.SFTP_OK
paramiko.sftp_client.SFTP_OK
paramiko.sftp_file.SFTP_OK
paramiko.sftp_handle.SFTP_OK
paramiko.sftp_server.SFTP_OK
-paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-149', 'SFTP_OK', 'link-149');">SFTP_OK</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-150" class="py-name" targets="Variable paramiko.sftp.SFTP_EOF=paramiko.sftp-module.html#SFTP_EOF,Variable paramiko.sftp_attr.SFTP_EOF=paramiko.sftp_attr-module.html#SFTP_EOF,Variable paramiko.sftp_client.SFTP_EOF=paramiko.sftp_client-module.html#SFTP_EOF,Variable paramiko.sftp_file.SFTP_EOF=paramiko.sftp_file-module.html#SFTP_EOF,Variable paramiko.sftp_handle.SFTP_EOF=paramiko.sftp_handle-module.html#SFTP_EOF,Variable paramiko.sftp_server.SFTP_EOF=paramiko.sftp_server-module.html#SFTP_EOF,Variable paramiko.sftp_si.SFTP_EOF=paramiko.sftp_si-module.html#SFTP_EOF"><a title="paramiko.sftp.SFTP_EOF
+paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-156', 'SFTP_OK', 'link-156');">SFTP_OK</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-157" class="py-name" targets="Variable paramiko.sftp.SFTP_EOF=paramiko.sftp-module.html#SFTP_EOF,Variable paramiko.sftp_attr.SFTP_EOF=paramiko.sftp_attr-module.html#SFTP_EOF,Variable paramiko.sftp_client.SFTP_EOF=paramiko.sftp_client-module.html#SFTP_EOF,Variable paramiko.sftp_file.SFTP_EOF=paramiko.sftp_file-module.html#SFTP_EOF,Variable paramiko.sftp_handle.SFTP_EOF=paramiko.sftp_handle-module.html#SFTP_EOF,Variable paramiko.sftp_server.SFTP_EOF=paramiko.sftp_server-module.html#SFTP_EOF,Variable paramiko.sftp_si.SFTP_EOF=paramiko.sftp_si-module.html#SFTP_EOF"><a title="paramiko.sftp.SFTP_EOF
paramiko.sftp_attr.SFTP_EOF
paramiko.sftp_client.SFTP_EOF
paramiko.sftp_file.SFTP_EOF
paramiko.sftp_handle.SFTP_EOF
paramiko.sftp_server.SFTP_EOF
-paramiko.sftp_si.SFTP_EOF" class="py-name" href="#" onclick="return doclink('link-150', 'SFTP_EOF', 'link-150');">SFTP_EOF</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-151" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_SUCH_FILE=paramiko.sftp-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_attr.SFTP_NO_SUCH_FILE=paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_client.SFTP_NO_SUCH_FILE=paramiko.sftp_client-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_file.SFTP_NO_SUCH_FILE=paramiko.sftp_file-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_handle.SFTP_NO_SUCH_FILE=paramiko.sftp_handle-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_server.SFTP_NO_SUCH_FILE=paramiko.sftp_server-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_si.SFTP_NO_SUCH_FILE=paramiko.sftp_si-module.html#SFTP_NO_SUCH_FILE"><a title="paramiko.sftp.SFTP_NO_SUCH_FILE
+paramiko.sftp_si.SFTP_EOF" class="py-name" href="#" onclick="return doclink('link-157', 'SFTP_EOF', 'link-157');">SFTP_EOF</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-158" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_SUCH_FILE=paramiko.sftp-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_attr.SFTP_NO_SUCH_FILE=paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_client.SFTP_NO_SUCH_FILE=paramiko.sftp_client-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_file.SFTP_NO_SUCH_FILE=paramiko.sftp_file-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_handle.SFTP_NO_SUCH_FILE=paramiko.sftp_handle-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_server.SFTP_NO_SUCH_FILE=paramiko.sftp_server-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_si.SFTP_NO_SUCH_FILE=paramiko.sftp_si-module.html#SFTP_NO_SUCH_FILE"><a title="paramiko.sftp.SFTP_NO_SUCH_FILE
paramiko.sftp_attr.SFTP_NO_SUCH_FILE
paramiko.sftp_client.SFTP_NO_SUCH_FILE
paramiko.sftp_file.SFTP_NO_SUCH_FILE
paramiko.sftp_handle.SFTP_NO_SUCH_FILE
paramiko.sftp_server.SFTP_NO_SUCH_FILE
-paramiko.sftp_si.SFTP_NO_SUCH_FILE" class="py-name" href="#" onclick="return doclink('link-151', 'SFTP_NO_SUCH_FILE', 'link-151');">SFTP_NO_SUCH_FILE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-comment"># clever idea from john a. meinel: map the error codes to errno</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOENT</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-152" class="py-name" targets="Variable paramiko.sftp.SFTP_PERMISSION_DENIED=paramiko.sftp-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_attr.SFTP_PERMISSION_DENIED=paramiko.sftp_attr-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_client.SFTP_PERMISSION_DENIED=paramiko.sftp_client-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_file.SFTP_PERMISSION_DENIED=paramiko.sftp_file-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_handle.SFTP_PERMISSION_DENIED=paramiko.sftp_handle-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_server.SFTP_PERMISSION_DENIED=paramiko.sftp_server-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_si.SFTP_PERMISSION_DENIED=paramiko.sftp_si-module.html#SFTP_PERMISSION_DENIED"><a title="paramiko.sftp.SFTP_PERMISSION_DENIED
+paramiko.sftp_si.SFTP_NO_SUCH_FILE" class="py-name" href="#" onclick="return doclink('link-158', 'SFTP_NO_SUCH_FILE', 'link-158');">SFTP_NO_SUCH_FILE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-comment"># clever idea from john a. meinel: map the error codes to errno</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOENT</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">code</tt> <tt class="py-op">==</tt> <tt id="link-159" class="py-name" targets="Variable paramiko.sftp.SFTP_PERMISSION_DENIED=paramiko.sftp-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_attr.SFTP_PERMISSION_DENIED=paramiko.sftp_attr-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_client.SFTP_PERMISSION_DENIED=paramiko.sftp_client-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_file.SFTP_PERMISSION_DENIED=paramiko.sftp_file-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_handle.SFTP_PERMISSION_DENIED=paramiko.sftp_handle-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_server.SFTP_PERMISSION_DENIED=paramiko.sftp_server-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_si.SFTP_PERMISSION_DENIED=paramiko.sftp_si-module.html#SFTP_PERMISSION_DENIED"><a title="paramiko.sftp.SFTP_PERMISSION_DENIED
paramiko.sftp_attr.SFTP_PERMISSION_DENIED
paramiko.sftp_client.SFTP_PERMISSION_DENIED
paramiko.sftp_file.SFTP_PERMISSION_DENIED
paramiko.sftp_handle.SFTP_PERMISSION_DENIED
paramiko.sftp_server.SFTP_PERMISSION_DENIED
-paramiko.sftp_si.SFTP_PERMISSION_DENIED" class="py-name" href="#" onclick="return doclink('link-152', 'SFTP_PERMISSION_DENIED', 'link-152');">SFTP_PERMISSION_DENIED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> </tt>
-<a name="SFTPClient._adjust_cwd"></a><div id="SFTPClient._adjust_cwd-def"><a name="L688"></a><tt class="py-lineno">688</tt> <a class="py-toggle" href="#" id="SFTPClient._adjust_cwd-toggle" onclick="return toggle('SFTPClient._adjust_cwd');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_adjust_cwd">_adjust_cwd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPClient._adjust_cwd-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._adjust_cwd-expanded"><a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"><tt class="py-docstring"> Return an adjusted path if we're emulating a "current working</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"><tt class="py-docstring"> directory" for the server.</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">unicode</tt><tt class="py-op">:</tt> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-153', 'encode', 'link-11');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">path</tt> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-comment"># absolute path</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">path</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">+</tt> <tt class="py-name">path</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">path</tt> </tt>
-</div></div><a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> </tt>
-<a name="SFTP"></a><div id="SFTP-def"><a name="L705"></a><tt class="py-lineno">705</tt> <a class="py-toggle" href="#" id="SFTP-toggle" onclick="return toggle('SFTP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTP-class.html">SFTP</a> <tt class="py-op">(</tt><tt class="py-base-class">SFTPClient</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTP-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTP-expanded"><a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-docstring">"an alias for L{SFTPClient} for backwards compatability"</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> </tt><script type="text/javascript">
+paramiko.sftp_si.SFTP_PERMISSION_DENIED" class="py-name" href="#" onclick="return doclink('link-159', 'SFTP_PERMISSION_DENIED', 'link-159');">SFTP_PERMISSION_DENIED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> </tt>
+<a name="SFTPClient._adjust_cwd"></a><div id="SFTPClient._adjust_cwd-def"><a name="L707"></a><tt class="py-lineno">707</tt> <a class="py-toggle" href="#" id="SFTPClient._adjust_cwd-toggle" onclick="return toggle('SFTPClient._adjust_cwd');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTPClient-class.html#_adjust_cwd">_adjust_cwd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPClient._adjust_cwd-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPClient._adjust_cwd-expanded"><a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"><tt class="py-docstring"> Return an adjusted path if we're emulating a "current working</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"><tt class="py-docstring"> directory" for the server.</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">unicode</tt><tt class="py-op">:</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="paramiko.ber.BER.encode" class="py-name" href="#" onclick="return doclink('link-160', 'encode', 'link-12');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">path</tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-comment"># absolute path</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">path</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">+</tt> <tt class="py-name">path</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cwd</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">path</tt> </tt>
+</div></div><a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> </tt>
+<a name="SFTP"></a><div id="SFTP-def"><a name="L724"></a><tt class="py-lineno">724</tt> <a class="py-toggle" href="#" id="SFTP-toggle" onclick="return toggle('SFTP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_client.SFTP-class.html">SFTP</a> <tt class="py-op">(</tt><tt class="py-base-class">SFTPClient</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTP-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTP-expanded"><a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> <tt class="py-docstring">"an alias for L{SFTPClient} for backwards compatability"</tt> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L727"></a><tt class="py-lineno">727</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1541,7 +1574,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_file-module.html b/docs/paramiko.sftp_file-module.html
index 664b692..5a8af5b 100644
--- a/docs/paramiko.sftp_file-module.html
+++ b/docs/paramiko.sftp_file-module.html
@@ -739,6 +739,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -878,7 +885,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_file-pysrc.html b/docs/paramiko.sftp_file-pysrc.html
index 5e9b4c7..86f8884 100644
--- a/docs/paramiko.sftp_file-pysrc.html
+++ b/docs/paramiko.sftp_file-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_file-module.html" onclick="show_private();">Module paramiko.sftp_file</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{SFTPFile}</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -94,11 +94,11 @@ paramiko.file" class="py-name" href="#" onclick="return doclink('link-5', 'file'
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-comment"># Some sftp servers will choke if you send read/write requests larger than</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># this size.</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-10" class="py-name" targets="Variable paramiko.SFTPFile.MAX_REQUEST_SIZE=paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-10', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">32768</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-comment"># this size.</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Variable paramiko.SFTPFile.MAX_REQUEST_SIZE=paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-10', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">32768</tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
<a name="SFTPFile.__init__"></a><div id="SFTPFile.__init__-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="SFTPFile.__init__-toggle" onclick="return toggle('SFTPFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sftp</tt><tt class="py-op">,</tt> <tt class="py-param">handle</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-param">bufsize</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.__init__-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-11', 'BufferedFile', 'link-6');">BufferedFile</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+</div><div id="SFTPFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.__init__-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-11', 'BufferedFile', 'link-6');">BufferedFile</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -139,6 +139,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-12', '__init__', 'link-12');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-13', 'sftp', 'link-3');">sftp</a></tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-14', 'sftp', 'link-3');">sftp</a></tt> </tt>
@@ -159,13 +160,13 @@ paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclic
</div><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._close"></a><div id="SFTPFile._close-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="SFTPFile._close-toggle" onclick="return toggle('SFTPFile._close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_close">_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">async</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._close-expanded"><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-comment"># We allow double-close without signaling an error, because real</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Python file objects do. However, we must protect against actually</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># sending multiple CMD_CLOSE packets, because after we close our</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># handle, the same handle may be re-allocated by the server, and we</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># may end up mysteriously closing some random other file. (This is</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># especially important because we unconditionally call close() from</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># __del__.)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-comment"># Python file objects do. However, we must protect against actually</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-comment"># sending multiple CMD_CLOSE packets, because after we close our</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-comment"># handle, the same handle may be re-allocated by the server, and we</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-comment"># may end up mysteriously closing some random other file. (This is</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-comment"># especially important because we unconditionally call close() from</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-comment"># __del__.)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</tt><tt class="py-op">:</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-16', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-17" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
@@ -206,7 +207,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">async</tt><tt class="py-op">:</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-comment"># GC'd file handle could be called from an arbitrary thread -- don't wait for a response</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-21', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-21', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
paramiko.sftp_attr.CMD_CLOSE
paramiko.sftp_client.CMD_CLOSE
paramiko.sftp_file.CMD_CLOSE
@@ -223,11 +224,11 @@ paramiko.sftp_server.CMD_CLOSE
paramiko.sftp_si.CMD_CLOSE" class="py-name" href="#" onclick="return doclink('link-24', 'CMD_CLOSE', 'link-22');">CMD_CLOSE</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-comment"># may have outlived the Transport connection</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-25', 'error', 'link-25');">error</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-comment"># may have outlived the Transport connection</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._data_in_prefetch_requests"></a><div id="SFTPFile._data_in_prefetch_requests-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="SFTPFile._data_in_prefetch_requests-toggle" onclick="return toggle('SFTPFile._data_in_prefetch_requests');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_data_in_prefetch_requests">_data_in_prefetch_requests</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">offset</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._data_in_prefetch_requests-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._data_in_prefetch_requests-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_reads</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">offset</tt><tt class="py-op">]</tt> </tt>
@@ -237,12 +238,12 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">buf_offset</tt><tt class="py-op">,</tt> <tt class="py-name">buf_size</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf_offset</tt> <tt class="py-op">+</tt> <tt class="py-name">buf_size</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">offset</tt><tt class="py-op">:</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-comment"># prefetch request ends before this one begins</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf_offset</tt> <tt class="py-op">+</tt> <tt class="py-name">buf_size</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">offset</tt> <tt class="py-op">+</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-comment"># inclusive</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-comment"># well, we have part of the request. see if another chunk has the rest.</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_requests</tt><tt class="py-op">(</tt><tt class="py-name">buf_offset</tt> <tt class="py-op">+</tt> <tt class="py-name">buf_size</tt><tt class="py-op">,</tt> <tt class="py-name">offset</tt> <tt class="py-op">+</tt> <tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">buf_offset</tt> <tt class="py-op">-</tt> <tt class="py-name">buf_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_requests</tt><tt class="py-op">(</tt><tt class="py-name">buf_offset</tt> <tt class="py-op">+</tt> <tt class="py-name">buf_size</tt><tt class="py-op">,</tt> <tt class="py-name">offset</tt> <tt class="py-op">+</tt> <tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">buf_offset</tt> <tt class="py-op">-</tt> <tt class="py-name">buf_size</tt><tt class="py-op">)</tt> </tt>
</div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._data_in_prefetch_buffers"></a><div id="SFTPFile._data_in_prefetch_buffers-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="SFTPFile._data_in_prefetch_buffers-toggle" onclick="return toggle('SFTPFile._data_in_prefetch_buffers');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_data_in_prefetch_buffers">_data_in_prefetch_buffers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">offset</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._data_in_prefetch_buffers-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._data_in_prefetch_buffers-expanded"><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -258,7 +259,7 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">buf_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">offset</tt> <tt class="py-op">-</tt> <tt class="py-name">index</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf_offset</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_data</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-comment"># it's not here</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">index</tt> </tt>
</div><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._read_prefetch"></a><div id="SFTPFile._read_prefetch-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="SFTPFile._read_prefetch-toggle" onclick="return toggle('SFTPFile._read_prefetch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_read_prefetch">_read_prefetch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -267,7 +268,7 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> in the buffer, return None. otherwise, behaves like a normal read.</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-comment"># while not closed, and haven't fetched past the current position, and haven't reached EOF...</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_buffers</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt><tt class="py-op">)</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">offset</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
@@ -315,7 +316,7 @@ paramiko.sftp_si.CMD_DATA" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._write"></a><div id="SFTPFile._write-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="SFTPFile._write-toggle" onclick="return toggle('SFTPFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._write-expanded"><a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-comment"># may write less than requested if it would exceed max packet size</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-43', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-43', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt><tt class="py-op">)</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">req</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-44', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name" targets="Variable paramiko.sftp.CMD_WRITE=paramiko.sftp-module.html#CMD_WRITE,Variable paramiko.sftp_attr.CMD_WRITE=paramiko.sftp_attr-module.html#CMD_WRITE,Variable paramiko.sftp_client.CMD_WRITE=paramiko.sftp_client-module.html#CMD_WRITE,Variable paramiko.sftp_file.CMD_WRITE=paramiko.sftp_file-module.html#CMD_WRITE,Variable paramiko.sftp_handle.CMD_WRITE=paramiko.sftp_handle-module.html#CMD_WRITE,Variable paramiko.sftp_server.CMD_WRITE=paramiko.sftp_server-module.html#CMD_WRITE,Variable paramiko.sftp_si.CMD_WRITE=paramiko.sftp_si-module.html#CMD_WRITE"><a title="paramiko.sftp.CMD_WRITE
paramiko.sftp_attr.CMD_WRITE
paramiko.sftp_client.CMD_WRITE
@@ -334,7 +335,7 @@ paramiko.sftp_server.CMD_STATUS
paramiko.sftp_si.CMD_STATUS" class="py-name" href="#" onclick="return doclink('link-49', 'CMD_STATUS', 'link-49');">CMD_STATUS</a></tt><tt class="py-op">:</tt> </tt>
<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-50" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-50', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected status'</tt><tt class="py-op">)</tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-comment"># convert_status already called</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">chunk</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chunk</tt> </tt>
</div><a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> </tt>
<a name="SFTPFile.settimeout"></a><div id="SFTPFile.settimeout-def"><a name="L171"></a><tt class="py-lineno">171</tt> <a class="py-toggle" href="#" id="SFTPFile.settimeout-toggle" onclick="return toggle('SFTPFile.settimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#settimeout">settimeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile.settimeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.settimeout-expanded"><a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -682,7 +683,7 @@ paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-90', 'stat', 'link-90');">stat</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-comment"># queue up async reads for the rest of the file</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">chunks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">chunks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt> </tt>
<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">n</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</tt><tt class="py-op">:</tt> </tt>
<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-91', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt><tt class="py-op">,</tt> <tt class="py-name">size</tt> <tt class="py-op">-</tt> <tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
@@ -732,11 +733,11 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-93',
<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">read_chunks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-comment"># don't fetch data that's already in the prefetch buffer</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_buffers</tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_requests</tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_buffers</tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_in_prefetch_requests</tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> </tt>
<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-comment"># break up anything larger than the max read size</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-name">size</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">size</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">chunk_size</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="paramiko.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-94', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></tt><tt class="py-op">)</tt> </tt>
<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">read_chunks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">+=</tt> <tt class="py-name">chunk_size</tt> </tt>
@@ -744,7 +745,7 @@ paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-93',
<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> </tt>
<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_prefetch</tt><tt class="py-op">(</tt><tt class="py-name">read_chunks</tt><tt class="py-op">)</tt> </tt>
<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-comment"># now we can just devolve to a bunch of read()s :)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method paramiko.BufferedFile.seek()=paramiko.BufferedFile-class.html#seek,Method paramiko.SFTPFile.seek()=paramiko.SFTPFile-class.html#seek"><a title="paramiko.BufferedFile.seek
paramiko.SFTPFile.seek" class="py-name" href="#" onclick="return doclink('link-95', 'seek', 'link-95');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
@@ -753,7 +754,7 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
</div><a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> </tt>
<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> </tt>
<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._get_size"></a><div id="SFTPFile._get_size-def"><a name="L434"></a><tt class="py-lineno">434</tt> <a class="py-toggle" href="#" id="SFTPFile._get_size-toggle" onclick="return toggle('SFTPFile._get_size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_get_size">_get_size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._get_size-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._get_size-expanded"><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -775,8 +776,8 @@ paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return docl
</div><a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
<a name="SFTPFile._prefetch_thread"></a><div id="SFTPFile._prefetch_thread-def"><a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="SFTPFile._prefetch_thread-toggle" onclick="return toggle('SFTPFile._prefetch_thread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_prefetch_thread">_prefetch_thread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chunks</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPFile._prefetch_thread-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._prefetch_thread-expanded"><a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-comment"># do these read requests in a temporary thread because there may be</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># a lot of them, so it may block.</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-comment"># a lot of them, so it may block.</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-98', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_async_request</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-99" class="py-name"><a title="paramiko.sftp.CMD_READ
paramiko.sftp_attr.CMD_READ
paramiko.sftp_client.CMD_READ
@@ -794,7 +795,7 @@ paramiko.sftp_handle.CMD_STATUS
paramiko.sftp_server.CMD_STATUS
paramiko.sftp_si.CMD_STATUS" class="py-name" href="#" onclick="return doclink('link-100', 'CMD_STATUS', 'link-49');">CMD_STATUS</a></tt><tt class="py-op">:</tt> </tt>
<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-comment"># save exception and re-raise it on next file operation</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-101', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_convert_status</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt> </tt>
@@ -852,7 +853,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_handle-module.html b/docs/paramiko.sftp_handle-module.html
index 60b436d..511768d 100644
--- a/docs/paramiko.sftp_handle-module.html
+++ b/docs/paramiko.sftp_handle-module.html
@@ -739,6 +739,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -878,7 +885,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_handle-pysrc.html b/docs/paramiko.sftp_handle-pysrc.html
index ca22a01..5548d83 100644
--- a/docs/paramiko.sftp_handle-pysrc.html
+++ b/docs/paramiko.sftp_handle-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_handle-module.html" onclick="show_private();">Module paramiko.sftp_handle</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Abstraction of an SFTP file handle (for server mode).</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -103,7 +103,7 @@
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__flags</tt> <tt class="py-op">=</tt> <tt class="py-name">flags</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-comment"># only for handles to folders:</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> </tt>
<a name="SFTPHandle.close"></a><div id="SFTPHandle.close-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="SFTPHandle.close-toggle" onclick="return toggle('SFTPHandle.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -224,7 +224,7 @@ paramiko.sftp_server.SFTP_OP_UNSUPPORTED
paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return doclink('link-12', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-comment"># in append mode, don't care about seeking</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_APPEND</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_APPEND</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</tt> <tt class="py-op">=</tt> <tt class="py-name">writefile</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.BufferedFile.tell" class="py-name" href="#" onclick="return doclink('link-13', 'tell', 'link-7');">tell</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">offset</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</tt><tt class="py-op">:</tt> </tt>
@@ -286,7 +286,7 @@ paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return d
</div><a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> </tt>
<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> </tt>
<a name="SFTPHandle._set_files"></a><div id="SFTPHandle._set_files-def"><a name="L178"></a><tt class="py-lineno">178</tt> <a class="py-toggle" href="#" id="SFTPHandle._set_files-toggle" onclick="return toggle('SFTPHandle._set_files');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html#_set_files">_set_files</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">files</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPHandle._set_files-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle._set_files-expanded"><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -347,7 +347,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:18 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_server-module.html b/docs/paramiko.sftp_server-module.html
index a2343f6..21666b2 100644
--- a/docs/paramiko.sftp_server-module.html
+++ b/docs/paramiko.sftp_server-module.html
@@ -739,6 +739,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -878,7 +885,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:27 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_server-pysrc.html b/docs/paramiko.sftp_server-pysrc.html
index cd77999..5bcda1e 100644
--- a/docs/paramiko.sftp_server-pysrc.html
+++ b/docs/paramiko.sftp_server-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_server-module.html" onclick="show_private();">Module paramiko.sftp_server</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Server-mode SFTP support.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -88,7 +88,7 @@
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment"># known hash algorithms for the "check-file" extension</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-11" class="py-name" targets="Variable paramiko.sftp_server._hash_class=paramiko.sftp_server-module.html#_hash_class"><a title="paramiko.sftp_server._hash_class" class="py-name" href="#" onclick="return doclink('link-11', '_hash_class', 'link-11');">_hash_class</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable paramiko.sftp_server._hash_class=paramiko.sftp_server-module.html#_hash_class"><a title="paramiko.sftp_server._hash_class" class="py-name" href="#" onclick="return doclink('link-11', '_hash_class', 'link-11');">_hash_class</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-string">'sha1'</tt><tt class="py-op">:</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-string">'md5'</tt><tt class="py-op">:</tt> <tt class="py-name">MD5</tt><tt class="py-op">,</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
@@ -119,7 +119,7 @@
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> individual requests.</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> @type sftp_si: class</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">BaseSFTP</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">BaseSFTP</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -160,6 +160,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-13', '__init__', 'link-13');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="paramiko.SubsystemHandler" class="py-name" href="#" onclick="return doclink('link-14', 'SubsystemHandler', 'link-4');">SubsystemHandler</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.Agent.__init__
@@ -203,6 +204,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-15', '__init__', 'link-13');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-16', 'channel', 'link-16');">channel</a></tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-17', 'name', 'link-17');">name</a></tt><tt class="py-op">,</tt> <tt id="link-18" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-18', 'server', 'link-3');">server</a></tt><tt class="py-op">)</tt> </tt>
@@ -212,7 +214,7 @@ paramiko.SSHClient.get_transport" class="py-name" href="#" onclick="return docli
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ultra_debug</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-27', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method paramiko.Transport.get_hexdump()=paramiko.Transport-class.html#get_hexdump"><a title="paramiko.Transport.get_hexdump" class="py-name" href="#" onclick="return doclink('link-28', 'get_hexdump', 'link-28');">get_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">next_handle</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment"># map of handle-string to SFTPHandle for files &amp; folders:</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">folder_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-29', 'server', 'link-3');">server</a></tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="paramiko.sftp_si" class="py-name" href="#" onclick="return doclink('link-30', 'sftp_si', 'link-8');">sftp_si</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-31', 'server', 'link-3');">server</a></tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">largs</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
</div><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> </tt>
@@ -380,7 +382,7 @@ paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-49', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-50', 'util', 'link-23');">util</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.util.tb_strings" class="py-name" href="#" onclick="return doclink('link-51', 'tb_strings', 'link-45');">tb_strings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># send some kind of failure message, at least</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name" targets="Variable paramiko.sftp.SFTP_FAILURE=paramiko.sftp-module.html#SFTP_FAILURE,Variable paramiko.sftp_attr.SFTP_FAILURE=paramiko.sftp_attr-module.html#SFTP_FAILURE,Variable paramiko.sftp_client.SFTP_FAILURE=paramiko.sftp_client-module.html#SFTP_FAILURE,Variable paramiko.sftp_file.SFTP_FAILURE=paramiko.sftp_file-module.html#SFTP_FAILURE,Variable paramiko.sftp_handle.SFTP_FAILURE=paramiko.sftp_handle-module.html#SFTP_FAILURE,Variable paramiko.sftp_server.SFTP_FAILURE=paramiko.sftp_server-module.html#SFTP_FAILURE,Variable paramiko.sftp_si.SFTP_FAILURE=paramiko.sftp_si-module.html#SFTP_FAILURE"><a title="paramiko.sftp.SFTP_FAILURE
paramiko.sftp_attr.SFTP_FAILURE
paramiko.sftp_client.SFTP_FAILURE
@@ -396,7 +398,7 @@ paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink(
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-55" class="py-name"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-55', 'SFTPServer', 'link-32');">SFTPServer</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method paramiko.SFTPServer.finish_subsystem()=paramiko.SFTPServer-class.html#finish_subsystem,Method paramiko.SubsystemHandler.finish_subsystem()=paramiko.SubsystemHandler-class.html#finish_subsystem"><a title="paramiko.SFTPServer.finish_subsystem
paramiko.SubsystemHandler.finish_subsystem" class="py-name" href="#" onclick="return doclink('link-56', 'finish_subsystem', 'link-56');">finish_subsystem</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-comment"># close any file handles that were left open (so we can return them to the OS quickly)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">.</tt><tt class="py-name">itervalues</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">.</tt><tt class="py-name">itervalues</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
@@ -438,7 +440,7 @@ paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="
<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">:</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-comment"># permission denied</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt id="link-59" class="py-name" targets="Variable paramiko.sftp.SFTP_PERMISSION_DENIED=paramiko.sftp-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_attr.SFTP_PERMISSION_DENIED=paramiko.sftp_attr-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_client.SFTP_PERMISSION_DENIED=paramiko.sftp_client-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_file.SFTP_PERMISSION_DENIED=paramiko.sftp_file-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_handle.SFTP_PERMISSION_DENIED=paramiko.sftp_handle-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_server.SFTP_PERMISSION_DENIED=paramiko.sftp_server-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_si.SFTP_PERMISSION_DENIED=paramiko.sftp_si-module.html#SFTP_PERMISSION_DENIED"><a title="paramiko.sftp.SFTP_PERMISSION_DENIED
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-59" class="py-name" targets="Variable paramiko.sftp.SFTP_PERMISSION_DENIED=paramiko.sftp-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_attr.SFTP_PERMISSION_DENIED=paramiko.sftp_attr-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_client.SFTP_PERMISSION_DENIED=paramiko.sftp_client-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_file.SFTP_PERMISSION_DENIED=paramiko.sftp_file-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_handle.SFTP_PERMISSION_DENIED=paramiko.sftp_handle-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_server.SFTP_PERMISSION_DENIED=paramiko.sftp_server-module.html#SFTP_PERMISSION_DENIED,Variable paramiko.sftp_si.SFTP_PERMISSION_DENIED=paramiko.sftp_si-module.html#SFTP_PERMISSION_DENIED"><a title="paramiko.sftp.SFTP_PERMISSION_DENIED
paramiko.sftp_attr.SFTP_PERMISSION_DENIED
paramiko.sftp_client.SFTP_PERMISSION_DENIED
paramiko.sftp_file.SFTP_PERMISSION_DENIED
@@ -447,7 +449,7 @@ paramiko.sftp_server.SFTP_PERMISSION_DENIED
paramiko.sftp_si.SFTP_PERMISSION_DENIED" class="py-name" href="#" onclick="return doclink('link-59', 'SFTP_PERMISSION_DENIED', 'link-59');">SFTP_PERMISSION_DENIED</a></tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOENT</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">ENOTDIR</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-comment"># no such file</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt id="link-60" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_SUCH_FILE=paramiko.sftp-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_attr.SFTP_NO_SUCH_FILE=paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_client.SFTP_NO_SUCH_FILE=paramiko.sftp_client-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_file.SFTP_NO_SUCH_FILE=paramiko.sftp_file-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_handle.SFTP_NO_SUCH_FILE=paramiko.sftp_handle-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_server.SFTP_NO_SUCH_FILE=paramiko.sftp_server-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_si.SFTP_NO_SUCH_FILE=paramiko.sftp_si-module.html#SFTP_NO_SUCH_FILE"><a title="paramiko.sftp.SFTP_NO_SUCH_FILE
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-60" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_SUCH_FILE=paramiko.sftp-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_attr.SFTP_NO_SUCH_FILE=paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_client.SFTP_NO_SUCH_FILE=paramiko.sftp_client-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_file.SFTP_NO_SUCH_FILE=paramiko.sftp_file-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_handle.SFTP_NO_SUCH_FILE=paramiko.sftp_handle-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_server.SFTP_NO_SUCH_FILE=paramiko.sftp_server-module.html#SFTP_NO_SUCH_FILE,Variable paramiko.sftp_si.SFTP_NO_SUCH_FILE=paramiko.sftp_si-module.html#SFTP_NO_SUCH_FILE"><a title="paramiko.sftp.SFTP_NO_SUCH_FILE
paramiko.sftp_attr.SFTP_NO_SUCH_FILE
paramiko.sftp_client.SFTP_NO_SUCH_FILE
paramiko.sftp_file.SFTP_NO_SUCH_FILE
@@ -482,7 +484,7 @@ paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink(
<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win32'</tt><tt class="py-op">:</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-comment"># mode operations are meaningless on win32</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_PERMISSIONS=paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><a title="paramiko.SFTPAttributes.FLAG_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-64', 'FLAG_PERMISSIONS', 'link-64');">FLAG_PERMISSIONS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_PERMISSIONS=paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><a title="paramiko.SFTPAttributes.FLAG_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-64', 'FLAG_PERMISSIONS', 'link-64');">FLAG_PERMISSIONS</a></tt><tt class="py-op">:</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method paramiko.SFTPClient.chmod()=paramiko.SFTPClient-class.html#chmod,Method paramiko.SFTPFile.chmod()=paramiko.SFTPFile-class.html#chmod"><a title="paramiko.SFTPClient.chmod
paramiko.SFTPFile.chmod" class="py-name" href="#" onclick="return doclink('link-65', 'chmod', 'link-65');">chmod</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt><tt class="py-op">)</tt> </tt>
<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_UIDGID=paramiko.SFTPAttributes-class.html#FLAG_UIDGID"><a title="paramiko.SFTPAttributes.FLAG_UIDGID" class="py-name" href="#" onclick="return doclink('link-66', 'FLAG_UIDGID', 'link-66');">FLAG_UIDGID</a></tt><tt class="py-op">:</tt> </tt>
@@ -498,7 +500,7 @@ paramiko.SFTPFile.truncate" class="py-name" href="#" onclick="return doclink('li
<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> </tt>
<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt>
<a name="SFTPServer._response"></a><div id="SFTPServer._response-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="SFTPServer._response-toggle" onclick="return toggle('SFTPServer._response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_response">_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request_number</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPServer._response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._response-expanded"><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-75', 'Message', 'link-46');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -519,7 +521,7 @@ paramiko.SFTPFile.truncate" class="py-name" href="#" onclick="return doclink('li
<a name="SFTPServer._send_handle_response"></a><div id="SFTPServer._send_handle_response-def"><a name="L192"></a><tt class="py-lineno">192</tt> <a class="py-toggle" href="#" id="SFTPServer._send_handle_response-toggle" onclick="return toggle('SFTPServer._send_handle_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_send_handle_response">_send_handle_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request_number</tt><tt class="py-op">,</tt> <tt class="py-param">handle</tt><tt class="py-op">,</tt> <tt class="py-param">folder</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPServer._send_handle_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._send_handle_response-expanded"><a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">handle</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-81" class="py-name" targets="Class paramiko.SFTPHandle=paramiko.SFTPHandle-class.html"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-81', 'SFTPHandle', 'link-81');">SFTPHandle</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-comment"># must be error code</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">)</tt> </tt>
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">handle</tt><tt class="py-op">.</tt><tt class="py-name">_set_name</tt><tt class="py-op">(</tt><tt class="py-string">'hx%d'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">next_handle</tt><tt class="py-op">)</tt> </tt>
<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">next_handle</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
@@ -548,7 +550,7 @@ paramiko.sftp_si.SFTP_DESC" class="py-name" href="#" onclick="return doclink('li
<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">desc</tt> <tt class="py-op">=</tt> <tt class="py-string">'Unknown'</tt> </tt>
<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-comment"># some clients expect a "langauge" tag at the end (but don't mind it being blank)</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name" targets="Variable paramiko.sftp.CMD_STATUS=paramiko.sftp-module.html#CMD_STATUS,Variable paramiko.sftp_attr.CMD_STATUS=paramiko.sftp_attr-module.html#CMD_STATUS,Variable paramiko.sftp_client.CMD_STATUS=paramiko.sftp_client-module.html#CMD_STATUS,Variable paramiko.sftp_file.CMD_STATUS=paramiko.sftp_file-module.html#CMD_STATUS,Variable paramiko.sftp_handle.CMD_STATUS=paramiko.sftp_handle-module.html#CMD_STATUS,Variable paramiko.sftp_server.CMD_STATUS=paramiko.sftp_server-module.html#CMD_STATUS,Variable paramiko.sftp_si.CMD_STATUS=paramiko.sftp_si-module.html#CMD_STATUS"><a title="paramiko.sftp.CMD_STATUS
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name" targets="Variable paramiko.sftp.CMD_STATUS=paramiko.sftp-module.html#CMD_STATUS,Variable paramiko.sftp_attr.CMD_STATUS=paramiko.sftp_attr-module.html#CMD_STATUS,Variable paramiko.sftp_client.CMD_STATUS=paramiko.sftp_client-module.html#CMD_STATUS,Variable paramiko.sftp_file.CMD_STATUS=paramiko.sftp_file-module.html#CMD_STATUS,Variable paramiko.sftp_handle.CMD_STATUS=paramiko.sftp_handle-module.html#CMD_STATUS,Variable paramiko.sftp_server.CMD_STATUS=paramiko.sftp_server-module.html#CMD_STATUS,Variable paramiko.sftp_si.CMD_STATUS=paramiko.sftp_si-module.html#CMD_STATUS"><a title="paramiko.sftp.CMD_STATUS
paramiko.sftp_attr.CMD_STATUS
paramiko.sftp_client.CMD_STATUS
paramiko.sftp_file.CMD_STATUS
@@ -560,12 +562,12 @@ paramiko.sftp_si.CMD_STATUS" class="py-name" href="#" onclick="return doclink('l
</div><div id="SFTPServer._open_folder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._open_folder-expanded"><a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-85', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method paramiko.SFTPServerInterface.list_folder()=paramiko.SFTPServerInterface-class.html#list_folder"><a title="paramiko.SFTPServerInterface.list_folder" class="py-name" href="#" onclick="return doclink('link-86', 'list_folder', 'link-86');">list_folder</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment"># got an actual list of filenames in the folder</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">folder</tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-87', 'SFTPHandle', 'link-81');">SFTPHandle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">folder</tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-87', 'SFTPHandle', 'link-81');">SFTPHandle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">folder</tt><tt class="py-op">.</tt><tt class="py-name">_set_files</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_handle_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">folder</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># must be an error code</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
</div><a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> </tt>
<a name="SFTPServer._read_folder"></a><div id="SFTPServer._read_folder-def"><a name="L225"></a><tt class="py-lineno">225</tt> <a class="py-toggle" href="#" id="SFTPServer._read_folder-toggle" onclick="return toggle('SFTPServer._read_folder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_read_folder">_read_folder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request_number</tt><tt class="py-op">,</tt> <tt class="py-param">folder</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPServer._read_folder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._read_folder-expanded"><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">flist</tt> <tt class="py-op">=</tt> <tt class="py-name">folder</tt><tt class="py-op">.</tt><tt class="py-name">_get_next_files</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -595,10 +597,10 @@ paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('lin
</div><a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> </tt>
<a name="SFTPServer._check_file"></a><div id="SFTPServer._check_file-def"><a name="L239"></a><tt class="py-lineno">239</tt> <a class="py-toggle" href="#" id="SFTPServer._check_file-toggle" onclick="return toggle('SFTPServer._check_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_check_file">_check_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request_number</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPServer._check_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._check_file-expanded"><a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-comment"># this extension actually comes from v6 protocol, but since it's an</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># extension, i feel like we can reasonably support it backported.</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># it's very useful for verifying uploaded files or checking for</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># rsync-like differences between local and remote files.</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-95', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-comment"># extension, i feel like we can reasonably support it backported.</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-comment"># it's very useful for verifying uploaded files or checking for</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-comment"># rsync-like differences between local and remote files.</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-95', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">alg_list</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method paramiko.Message.get_list()=paramiko.Message-class.html#get_list"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-96', 'get_list', 'link-96');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Method paramiko.Message.get_int64()=paramiko.Message-class.html#get_int64"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-97', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-98', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -653,13 +655,13 @@ paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink(
<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">offset</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt class="py-name">length</tt><tt class="py-op">:</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">blocklen</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">block_size</tt><tt class="py-op">,</tt> <tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt class="py-name">length</tt> <tt class="py-op">-</tt> <tt class="py-name">offset</tt><tt class="py-op">)</tt> </tt>
<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-comment"># don't try to read more than about 64KB at a time</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">chunklen</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">blocklen</tt><tt class="py-op">,</tt> <tt class="py-number">65536</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">chunklen</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">blocklen</tt><tt class="py-op">,</tt> <tt class="py-number">65536</tt><tt class="py-op">)</tt> </tt>
<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">alg</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">alg</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-107', 'new', 'link-107');">new</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">count</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">blocklen</tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method paramiko.BufferedFile.read()=paramiko.BufferedFile-class.html#read,Method paramiko.SFTPHandle.read()=paramiko.SFTPHandle-class.html#read,Method paramiko.buffered_pipe.BufferedPipe.read()=paramiko.buffered_pipe.BufferedPipe-class.html#read"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-107', 'read', 'link-107');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">chunklen</tt><tt class="py-op">)</tt> </tt>
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-108', 'read', 'link-108');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">chunklen</tt><tt class="py-op">)</tt> </tt>
<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-string">'Unable to hash file'</tt><tt class="py-op">)</tt> </tt>
<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
@@ -668,81 +670,81 @@ paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="retu
<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">+=</tt> <tt class="py-name">count</tt> </tt>
<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">sum_out</tt> <tt class="py-op">+=</tt> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-108', 'Message', 'link-46');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-109', 'add_int', 'link-76');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">)</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-110', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'check-file'</tt><tt class="py-op">)</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-111', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">algname</tt><tt class="py-op">)</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method paramiko.Message.add_bytes()=paramiko.Message-class.html#add_bytes"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-112', 'add_bytes', 'link-112');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">sum_out</tt><tt class="py-op">)</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt id="link-113" class="py-name" targets="Variable paramiko.sftp.CMD_EXTENDED_REPLY=paramiko.sftp-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_attr.CMD_EXTENDED_REPLY=paramiko.sftp_attr-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_client.CMD_EXTENDED_REPLY=paramiko.sftp_client-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_file.CMD_EXTENDED_REPLY=paramiko.sftp_file-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_handle.CMD_EXTENDED_REPLY=paramiko.sftp_handle-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_server.CMD_EXTENDED_REPLY=paramiko.sftp_server-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_si.CMD_EXTENDED_REPLY=paramiko.sftp_si-module.html#CMD_EXTENDED_REPLY"><a title="paramiko.sftp.CMD_EXTENDED_REPLY
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-109', 'Message', 'link-46');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-110', 'add_int', 'link-76');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-111', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'check-file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-112', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">algname</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method paramiko.Message.add_bytes()=paramiko.Message-class.html#add_bytes"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-113', 'add_bytes', 'link-113');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">sum_out</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt id="link-114" class="py-name" targets="Variable paramiko.sftp.CMD_EXTENDED_REPLY=paramiko.sftp-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_attr.CMD_EXTENDED_REPLY=paramiko.sftp_attr-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_client.CMD_EXTENDED_REPLY=paramiko.sftp_client-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_file.CMD_EXTENDED_REPLY=paramiko.sftp_file-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_handle.CMD_EXTENDED_REPLY=paramiko.sftp_handle-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_server.CMD_EXTENDED_REPLY=paramiko.sftp_server-module.html#CMD_EXTENDED_REPLY,Variable paramiko.sftp_si.CMD_EXTENDED_REPLY=paramiko.sftp_si-module.html#CMD_EXTENDED_REPLY"><a title="paramiko.sftp.CMD_EXTENDED_REPLY
paramiko.sftp_attr.CMD_EXTENDED_REPLY
paramiko.sftp_client.CMD_EXTENDED_REPLY
paramiko.sftp_file.CMD_EXTENDED_REPLY
paramiko.sftp_handle.CMD_EXTENDED_REPLY
paramiko.sftp_server.CMD_EXTENDED_REPLY
-paramiko.sftp_si.CMD_EXTENDED_REPLY" class="py-name" href="#" onclick="return doclink('link-113', 'CMD_EXTENDED_REPLY', 'link-113');">CMD_EXTENDED_REPLY</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_EXTENDED_REPLY" class="py-name" href="#" onclick="return doclink('link-114', 'CMD_EXTENDED_REPLY', 'link-114');">CMD_EXTENDED_REPLY</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> </tt>
<a name="SFTPServer._convert_pflags"></a><div id="SFTPServer._convert_pflags-def"><a name="L298"></a><tt class="py-lineno">298</tt> <a class="py-toggle" href="#" id="SFTPServer._convert_pflags-toggle" onclick="return toggle('SFTPServer._convert_pflags');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_convert_pflags">_convert_pflags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">pflags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SFTPServer._convert_pflags-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._convert_pflags-expanded"><a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-docstring">"convert SFTP-style open() flags to python's os.open() flags"</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-114" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_READ=paramiko.sftp-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_attr.SFTP_FLAG_READ=paramiko.sftp_attr-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_client.SFTP_FLAG_READ=paramiko.sftp_client-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_file.SFTP_FLAG_READ=paramiko.sftp_file-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_handle.SFTP_FLAG_READ=paramiko.sftp_handle-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_server.SFTP_FLAG_READ=paramiko.sftp_server-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_si.SFTP_FLAG_READ=paramiko.sftp_si-module.html#SFTP_FLAG_READ"><a title="paramiko.sftp.SFTP_FLAG_READ
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-115" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_READ=paramiko.sftp-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_attr.SFTP_FLAG_READ=paramiko.sftp_attr-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_client.SFTP_FLAG_READ=paramiko.sftp_client-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_file.SFTP_FLAG_READ=paramiko.sftp_file-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_handle.SFTP_FLAG_READ=paramiko.sftp_handle-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_server.SFTP_FLAG_READ=paramiko.sftp_server-module.html#SFTP_FLAG_READ,Variable paramiko.sftp_si.SFTP_FLAG_READ=paramiko.sftp_si-module.html#SFTP_FLAG_READ"><a title="paramiko.sftp.SFTP_FLAG_READ
paramiko.sftp_attr.SFTP_FLAG_READ
paramiko.sftp_client.SFTP_FLAG_READ
paramiko.sftp_file.SFTP_FLAG_READ
paramiko.sftp_handle.SFTP_FLAG_READ
paramiko.sftp_server.SFTP_FLAG_READ
-paramiko.sftp_si.SFTP_FLAG_READ" class="py-name" href="#" onclick="return doclink('link-114', 'SFTP_FLAG_READ', 'link-114');">SFTP_FLAG_READ</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-115" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_WRITE=paramiko.sftp-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_attr.SFTP_FLAG_WRITE=paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_client.SFTP_FLAG_WRITE=paramiko.sftp_client-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_file.SFTP_FLAG_WRITE=paramiko.sftp_file-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_handle.SFTP_FLAG_WRITE=paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_server.SFTP_FLAG_WRITE=paramiko.sftp_server-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_si.SFTP_FLAG_WRITE=paramiko.sftp_si-module.html#SFTP_FLAG_WRITE"><a title="paramiko.sftp.SFTP_FLAG_WRITE
+paramiko.sftp_si.SFTP_FLAG_READ" class="py-name" href="#" onclick="return doclink('link-115', 'SFTP_FLAG_READ', 'link-115');">SFTP_FLAG_READ</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-116" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_WRITE=paramiko.sftp-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_attr.SFTP_FLAG_WRITE=paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_client.SFTP_FLAG_WRITE=paramiko.sftp_client-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_file.SFTP_FLAG_WRITE=paramiko.sftp_file-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_handle.SFTP_FLAG_WRITE=paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_server.SFTP_FLAG_WRITE=paramiko.sftp_server-module.html#SFTP_FLAG_WRITE,Variable paramiko.sftp_si.SFTP_FLAG_WRITE=paramiko.sftp_si-module.html#SFTP_FLAG_WRITE"><a title="paramiko.sftp.SFTP_FLAG_WRITE
paramiko.sftp_attr.SFTP_FLAG_WRITE
paramiko.sftp_client.SFTP_FLAG_WRITE
paramiko.sftp_file.SFTP_FLAG_WRITE
paramiko.sftp_handle.SFTP_FLAG_WRITE
paramiko.sftp_server.SFTP_FLAG_WRITE
-paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-115', 'SFTP_FLAG_WRITE', 'link-115');">SFTP_FLAG_WRITE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-116', 'SFTP_FLAG_WRITE', 'link-116');">SFTP_FLAG_WRITE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_RDWR</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-116" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_WRITE
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-117" class="py-name"><a title="paramiko.sftp.SFTP_FLAG_WRITE
paramiko.sftp_attr.SFTP_FLAG_WRITE
paramiko.sftp_client.SFTP_FLAG_WRITE
paramiko.sftp_file.SFTP_FLAG_WRITE
paramiko.sftp_handle.SFTP_FLAG_WRITE
paramiko.sftp_server.SFTP_FLAG_WRITE
-paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-116', 'SFTP_FLAG_WRITE', 'link-115');">SFTP_FLAG_WRITE</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-117', 'SFTP_FLAG_WRITE', 'link-116');">SFTP_FLAG_WRITE</a></tt><tt class="py-op">:</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_WRONLY</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_RDONLY</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-117" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_APPEND=paramiko.sftp-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_attr.SFTP_FLAG_APPEND=paramiko.sftp_attr-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_client.SFTP_FLAG_APPEND=paramiko.sftp_client-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_file.SFTP_FLAG_APPEND=paramiko.sftp_file-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_handle.SFTP_FLAG_APPEND=paramiko.sftp_handle-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_server.SFTP_FLAG_APPEND=paramiko.sftp_server-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_si.SFTP_FLAG_APPEND=paramiko.sftp_si-module.html#SFTP_FLAG_APPEND"><a title="paramiko.sftp.SFTP_FLAG_APPEND
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-118" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_APPEND=paramiko.sftp-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_attr.SFTP_FLAG_APPEND=paramiko.sftp_attr-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_client.SFTP_FLAG_APPEND=paramiko.sftp_client-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_file.SFTP_FLAG_APPEND=paramiko.sftp_file-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_handle.SFTP_FLAG_APPEND=paramiko.sftp_handle-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_server.SFTP_FLAG_APPEND=paramiko.sftp_server-module.html#SFTP_FLAG_APPEND,Variable paramiko.sftp_si.SFTP_FLAG_APPEND=paramiko.sftp_si-module.html#SFTP_FLAG_APPEND"><a title="paramiko.sftp.SFTP_FLAG_APPEND
paramiko.sftp_attr.SFTP_FLAG_APPEND
paramiko.sftp_client.SFTP_FLAG_APPEND
paramiko.sftp_file.SFTP_FLAG_APPEND
paramiko.sftp_handle.SFTP_FLAG_APPEND
paramiko.sftp_server.SFTP_FLAG_APPEND
-paramiko.sftp_si.SFTP_FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-117', 'SFTP_FLAG_APPEND', 'link-117');">SFTP_FLAG_APPEND</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-118', 'SFTP_FLAG_APPEND', 'link-118');">SFTP_FLAG_APPEND</a></tt><tt class="py-op">:</tt> </tt>
<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_APPEND</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-118" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_CREATE=paramiko.sftp-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_attr.SFTP_FLAG_CREATE=paramiko.sftp_attr-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_client.SFTP_FLAG_CREATE=paramiko.sftp_client-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_file.SFTP_FLAG_CREATE=paramiko.sftp_file-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_handle.SFTP_FLAG_CREATE=paramiko.sftp_handle-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_server.SFTP_FLAG_CREATE=paramiko.sftp_server-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_si.SFTP_FLAG_CREATE=paramiko.sftp_si-module.html#SFTP_FLAG_CREATE"><a title="paramiko.sftp.SFTP_FLAG_CREATE
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-119" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_CREATE=paramiko.sftp-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_attr.SFTP_FLAG_CREATE=paramiko.sftp_attr-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_client.SFTP_FLAG_CREATE=paramiko.sftp_client-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_file.SFTP_FLAG_CREATE=paramiko.sftp_file-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_handle.SFTP_FLAG_CREATE=paramiko.sftp_handle-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_server.SFTP_FLAG_CREATE=paramiko.sftp_server-module.html#SFTP_FLAG_CREATE,Variable paramiko.sftp_si.SFTP_FLAG_CREATE=paramiko.sftp_si-module.html#SFTP_FLAG_CREATE"><a title="paramiko.sftp.SFTP_FLAG_CREATE
paramiko.sftp_attr.SFTP_FLAG_CREATE
paramiko.sftp_client.SFTP_FLAG_CREATE
paramiko.sftp_file.SFTP_FLAG_CREATE
paramiko.sftp_handle.SFTP_FLAG_CREATE
paramiko.sftp_server.SFTP_FLAG_CREATE
-paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-118', 'SFTP_FLAG_CREATE', 'link-118');">SFTP_FLAG_CREATE</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_CREATE" class="py-name" href="#" onclick="return doclink('link-119', 'SFTP_FLAG_CREATE', 'link-119');">SFTP_FLAG_CREATE</a></tt><tt class="py-op">:</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_CREAT</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-119" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_TRUNC=paramiko.sftp-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_attr.SFTP_FLAG_TRUNC=paramiko.sftp_attr-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_client.SFTP_FLAG_TRUNC=paramiko.sftp_client-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_file.SFTP_FLAG_TRUNC=paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_handle.SFTP_FLAG_TRUNC=paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_server.SFTP_FLAG_TRUNC=paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_si.SFTP_FLAG_TRUNC=paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC"><a title="paramiko.sftp.SFTP_FLAG_TRUNC
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-120" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_TRUNC=paramiko.sftp-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_attr.SFTP_FLAG_TRUNC=paramiko.sftp_attr-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_client.SFTP_FLAG_TRUNC=paramiko.sftp_client-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_file.SFTP_FLAG_TRUNC=paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_handle.SFTP_FLAG_TRUNC=paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_server.SFTP_FLAG_TRUNC=paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC,Variable paramiko.sftp_si.SFTP_FLAG_TRUNC=paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC"><a title="paramiko.sftp.SFTP_FLAG_TRUNC
paramiko.sftp_attr.SFTP_FLAG_TRUNC
paramiko.sftp_client.SFTP_FLAG_TRUNC
paramiko.sftp_file.SFTP_FLAG_TRUNC
paramiko.sftp_handle.SFTP_FLAG_TRUNC
paramiko.sftp_server.SFTP_FLAG_TRUNC
-paramiko.sftp_si.SFTP_FLAG_TRUNC" class="py-name" href="#" onclick="return doclink('link-119', 'SFTP_FLAG_TRUNC', 'link-119');">SFTP_FLAG_TRUNC</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_TRUNC" class="py-name" href="#" onclick="return doclink('link-120', 'SFTP_FLAG_TRUNC', 'link-120');">SFTP_FLAG_TRUNC</a></tt><tt class="py-op">:</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_TRUNC</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-120" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_EXCL=paramiko.sftp-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_attr.SFTP_FLAG_EXCL=paramiko.sftp_attr-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_client.SFTP_FLAG_EXCL=paramiko.sftp_client-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_file.SFTP_FLAG_EXCL=paramiko.sftp_file-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_handle.SFTP_FLAG_EXCL=paramiko.sftp_handle-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_server.SFTP_FLAG_EXCL=paramiko.sftp_server-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_si.SFTP_FLAG_EXCL=paramiko.sftp_si-module.html#SFTP_FLAG_EXCL"><a title="paramiko.sftp.SFTP_FLAG_EXCL
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pflags</tt> <tt class="py-op">&amp;</tt> <tt id="link-121" class="py-name" targets="Variable paramiko.sftp.SFTP_FLAG_EXCL=paramiko.sftp-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_attr.SFTP_FLAG_EXCL=paramiko.sftp_attr-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_client.SFTP_FLAG_EXCL=paramiko.sftp_client-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_file.SFTP_FLAG_EXCL=paramiko.sftp_file-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_handle.SFTP_FLAG_EXCL=paramiko.sftp_handle-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_server.SFTP_FLAG_EXCL=paramiko.sftp_server-module.html#SFTP_FLAG_EXCL,Variable paramiko.sftp_si.SFTP_FLAG_EXCL=paramiko.sftp_si-module.html#SFTP_FLAG_EXCL"><a title="paramiko.sftp.SFTP_FLAG_EXCL
paramiko.sftp_attr.SFTP_FLAG_EXCL
paramiko.sftp_client.SFTP_FLAG_EXCL
paramiko.sftp_file.SFTP_FLAG_EXCL
paramiko.sftp_handle.SFTP_FLAG_EXCL
paramiko.sftp_server.SFTP_FLAG_EXCL
-paramiko.sftp_si.SFTP_FLAG_EXCL" class="py-name" href="#" onclick="return doclink('link-120', 'SFTP_FLAG_EXCL', 'link-120');">SFTP_FLAG_EXCL</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.SFTP_FLAG_EXCL" class="py-name" href="#" onclick="return doclink('link-121', 'SFTP_FLAG_EXCL', 'link-121');">SFTP_FLAG_EXCL</a></tt><tt class="py-op">:</tt> </tt>
<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">|=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_EXCL</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">flags</tt> </tt>
</div><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> </tt>
<a name="SFTPServer._process"></a><div id="SFTPServer._process-def"><a name="L316"></a><tt class="py-lineno">316</tt> <a class="py-toggle" href="#" id="SFTPServer._process-toggle" onclick="return toggle('SFTPServer._process');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_process">_process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">request_number</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SFTPServer._process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._process-expanded"><a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-121" class="py-name"><a title="paramiko.auth_handler.DEBUG
+</div><div id="SFTPServer._process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._process-expanded"><a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -763,44 +765,44 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-121', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Request: %s'</tt> <tt class="py-op">%</tt> <tt id="link-122" class="py-name" targets="Variable paramiko.sftp.CMD_NAMES=paramiko.sftp-module.html#CMD_NAMES,Variable paramiko.sftp_attr.CMD_NAMES=paramiko.sftp_attr-module.html#CMD_NAMES,Variable paramiko.sftp_client.CMD_NAMES=paramiko.sftp_client-module.html#CMD_NAMES,Variable paramiko.sftp_file.CMD_NAMES=paramiko.sftp_file-module.html#CMD_NAMES,Variable paramiko.sftp_handle.CMD_NAMES=paramiko.sftp_handle-module.html#CMD_NAMES,Variable paramiko.sftp_server.CMD_NAMES=paramiko.sftp_server-module.html#CMD_NAMES,Variable paramiko.sftp_si.CMD_NAMES=paramiko.sftp_si-module.html#CMD_NAMES"><a title="paramiko.sftp.CMD_NAMES
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-122', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Request: %s'</tt> <tt class="py-op">%</tt> <tt id="link-123" class="py-name" targets="Variable paramiko.sftp.CMD_NAMES=paramiko.sftp-module.html#CMD_NAMES,Variable paramiko.sftp_attr.CMD_NAMES=paramiko.sftp_attr-module.html#CMD_NAMES,Variable paramiko.sftp_client.CMD_NAMES=paramiko.sftp_client-module.html#CMD_NAMES,Variable paramiko.sftp_file.CMD_NAMES=paramiko.sftp_file-module.html#CMD_NAMES,Variable paramiko.sftp_handle.CMD_NAMES=paramiko.sftp_handle-module.html#CMD_NAMES,Variable paramiko.sftp_server.CMD_NAMES=paramiko.sftp_server-module.html#CMD_NAMES,Variable paramiko.sftp_si.CMD_NAMES=paramiko.sftp_si-module.html#CMD_NAMES"><a title="paramiko.sftp.CMD_NAMES
paramiko.sftp_attr.CMD_NAMES
paramiko.sftp_client.CMD_NAMES
paramiko.sftp_file.CMD_NAMES
paramiko.sftp_handle.CMD_NAMES
paramiko.sftp_server.CMD_NAMES
-paramiko.sftp_si.CMD_NAMES" class="py-name" href="#" onclick="return doclink('link-122', 'CMD_NAMES', 'link-122');">CMD_NAMES</a></tt><tt class="py-op">[</tt><tt class="py-name">t</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-123" class="py-name" targets="Variable paramiko.sftp.CMD_OPEN=paramiko.sftp-module.html#CMD_OPEN,Variable paramiko.sftp_attr.CMD_OPEN=paramiko.sftp_attr-module.html#CMD_OPEN,Variable paramiko.sftp_client.CMD_OPEN=paramiko.sftp_client-module.html#CMD_OPEN,Variable paramiko.sftp_file.CMD_OPEN=paramiko.sftp_file-module.html#CMD_OPEN,Variable paramiko.sftp_handle.CMD_OPEN=paramiko.sftp_handle-module.html#CMD_OPEN,Variable paramiko.sftp_server.CMD_OPEN=paramiko.sftp_server-module.html#CMD_OPEN,Variable paramiko.sftp_si.CMD_OPEN=paramiko.sftp_si-module.html#CMD_OPEN"><a title="paramiko.sftp.CMD_OPEN
+paramiko.sftp_si.CMD_NAMES" class="py-name" href="#" onclick="return doclink('link-123', 'CMD_NAMES', 'link-123');">CMD_NAMES</a></tt><tt class="py-op">[</tt><tt class="py-name">t</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-124" class="py-name" targets="Variable paramiko.sftp.CMD_OPEN=paramiko.sftp-module.html#CMD_OPEN,Variable paramiko.sftp_attr.CMD_OPEN=paramiko.sftp_attr-module.html#CMD_OPEN,Variable paramiko.sftp_client.CMD_OPEN=paramiko.sftp_client-module.html#CMD_OPEN,Variable paramiko.sftp_file.CMD_OPEN=paramiko.sftp_file-module.html#CMD_OPEN,Variable paramiko.sftp_handle.CMD_OPEN=paramiko.sftp_handle-module.html#CMD_OPEN,Variable paramiko.sftp_server.CMD_OPEN=paramiko.sftp_server-module.html#CMD_OPEN,Variable paramiko.sftp_si.CMD_OPEN=paramiko.sftp_si-module.html#CMD_OPEN"><a title="paramiko.sftp.CMD_OPEN
paramiko.sftp_attr.CMD_OPEN
paramiko.sftp_client.CMD_OPEN
paramiko.sftp_file.CMD_OPEN
paramiko.sftp_handle.CMD_OPEN
paramiko.sftp_server.CMD_OPEN
-paramiko.sftp_si.CMD_OPEN" class="py-name" href="#" onclick="return doclink('link-123', 'CMD_OPEN', 'link-123');">CMD_OPEN</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-124', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_convert_pflags</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-125', 'get_int', 'link-47');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-126" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-126', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_handle_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-127', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-128', 'open', 'link-71');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-129" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
+paramiko.sftp_si.CMD_OPEN" class="py-name" href="#" onclick="return doclink('link-124', 'CMD_OPEN', 'link-124');">CMD_OPEN</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-125', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_convert_pflags</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-126', 'get_int', 'link-47');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-127', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_handle_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-128', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-129', 'open', 'link-71');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-130" class="py-name" targets="Variable paramiko.sftp.CMD_CLOSE=paramiko.sftp-module.html#CMD_CLOSE,Variable paramiko.sftp_attr.CMD_CLOSE=paramiko.sftp_attr-module.html#CMD_CLOSE,Variable paramiko.sftp_client.CMD_CLOSE=paramiko.sftp_client-module.html#CMD_CLOSE,Variable paramiko.sftp_file.CMD_CLOSE=paramiko.sftp_file-module.html#CMD_CLOSE,Variable paramiko.sftp_handle.CMD_CLOSE=paramiko.sftp_handle-module.html#CMD_CLOSE,Variable paramiko.sftp_server.CMD_CLOSE=paramiko.sftp_server-module.html#CMD_CLOSE,Variable paramiko.sftp_si.CMD_CLOSE=paramiko.sftp_si-module.html#CMD_CLOSE"><a title="paramiko.sftp.CMD_CLOSE
paramiko.sftp_attr.CMD_CLOSE
paramiko.sftp_client.CMD_CLOSE
paramiko.sftp_file.CMD_CLOSE
paramiko.sftp_handle.CMD_CLOSE
paramiko.sftp_server.CMD_CLOSE
-paramiko.sftp_si.CMD_CLOSE" class="py-name" href="#" onclick="return doclink('link-129', 'CMD_CLOSE', 'link-129');">CMD_CLOSE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-130', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_CLOSE" class="py-name" href="#" onclick="return doclink('link-130', 'CMD_CLOSE', 'link-130');">CMD_CLOSE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-131', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">folder_table</tt><tt class="py-op">:</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">folder_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-131" class="py-name" targets="Variable paramiko.sftp.SFTP_OK=paramiko.sftp-module.html#SFTP_OK,Variable paramiko.sftp_attr.SFTP_OK=paramiko.sftp_attr-module.html#SFTP_OK,Variable paramiko.sftp_client.SFTP_OK=paramiko.sftp_client-module.html#SFTP_OK,Variable paramiko.sftp_file.SFTP_OK=paramiko.sftp_file-module.html#SFTP_OK,Variable paramiko.sftp_handle.SFTP_OK=paramiko.sftp_handle-module.html#SFTP_OK,Variable paramiko.sftp_server.SFTP_OK=paramiko.sftp_server-module.html#SFTP_OK,Variable paramiko.sftp_si.SFTP_OK=paramiko.sftp_si-module.html#SFTP_OK"><a title="paramiko.sftp.SFTP_OK
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name" targets="Variable paramiko.sftp.SFTP_OK=paramiko.sftp-module.html#SFTP_OK,Variable paramiko.sftp_attr.SFTP_OK=paramiko.sftp_attr-module.html#SFTP_OK,Variable paramiko.sftp_client.SFTP_OK=paramiko.sftp_client-module.html#SFTP_OK,Variable paramiko.sftp_file.SFTP_OK=paramiko.sftp_file-module.html#SFTP_OK,Variable paramiko.sftp_handle.SFTP_OK=paramiko.sftp_handle-module.html#SFTP_OK,Variable paramiko.sftp_server.SFTP_OK=paramiko.sftp_server-module.html#SFTP_OK,Variable paramiko.sftp_si.SFTP_OK=paramiko.sftp_si-module.html#SFTP_OK"><a title="paramiko.sftp.SFTP_OK
paramiko.sftp_attr.SFTP_OK
paramiko.sftp_client.SFTP_OK
paramiko.sftp_file.SFTP_OK
paramiko.sftp_handle.SFTP_OK
paramiko.sftp_server.SFTP_OK
-paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-131', 'SFTP_OK', 'link-131');">SFTP_OK</a></tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-132', 'SFTP_OK', 'link-132');">SFTP_OK</a></tt><tt class="py-op">)</tt> </tt>
<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Agent.close
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -811,336 +813,336 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-132', 'close', 'link-57');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-133', 'close', 'link-57');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-133" class="py-name"><a title="paramiko.sftp.SFTP_OK
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-134" class="py-name"><a title="paramiko.sftp.SFTP_OK
paramiko.sftp_attr.SFTP_OK
paramiko.sftp_client.SFTP_OK
paramiko.sftp_file.SFTP_OK
paramiko.sftp_handle.SFTP_OK
paramiko.sftp_server.SFTP_OK
-paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-133', 'SFTP_OK', 'link-131');">SFTP_OK</a></tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_OK" class="py-name" href="#" onclick="return doclink('link-134', 'SFTP_OK', 'link-132');">SFTP_OK</a></tt><tt class="py-op">)</tt> </tt>
<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-134" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-135" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-134', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-135" class="py-name" targets="Variable paramiko.sftp.CMD_READ=paramiko.sftp-module.html#CMD_READ,Variable paramiko.sftp_attr.CMD_READ=paramiko.sftp_attr-module.html#CMD_READ,Variable paramiko.sftp_client.CMD_READ=paramiko.sftp_client-module.html#CMD_READ,Variable paramiko.sftp_file.CMD_READ=paramiko.sftp_file-module.html#CMD_READ,Variable paramiko.sftp_handle.CMD_READ=paramiko.sftp_handle-module.html#CMD_READ,Variable paramiko.sftp_server.CMD_READ=paramiko.sftp_server-module.html#CMD_READ,Variable paramiko.sftp_si.CMD_READ=paramiko.sftp_si-module.html#CMD_READ"><a title="paramiko.sftp.CMD_READ
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-135', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-136" class="py-name" targets="Variable paramiko.sftp.CMD_READ=paramiko.sftp-module.html#CMD_READ,Variable paramiko.sftp_attr.CMD_READ=paramiko.sftp_attr-module.html#CMD_READ,Variable paramiko.sftp_client.CMD_READ=paramiko.sftp_client-module.html#CMD_READ,Variable paramiko.sftp_file.CMD_READ=paramiko.sftp_file-module.html#CMD_READ,Variable paramiko.sftp_handle.CMD_READ=paramiko.sftp_handle-module.html#CMD_READ,Variable paramiko.sftp_server.CMD_READ=paramiko.sftp_server-module.html#CMD_READ,Variable paramiko.sftp_si.CMD_READ=paramiko.sftp_si-module.html#CMD_READ"><a title="paramiko.sftp.CMD_READ
paramiko.sftp_attr.CMD_READ
paramiko.sftp_client.CMD_READ
paramiko.sftp_file.CMD_READ
paramiko.sftp_handle.CMD_READ
paramiko.sftp_server.CMD_READ
-paramiko.sftp_si.CMD_READ" class="py-name" href="#" onclick="return doclink('link-135', 'CMD_READ', 'link-135');">CMD_READ</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-136', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-137', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-138', 'get_int', 'link-47');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_READ" class="py-name" href="#" onclick="return doclink('link-136', 'CMD_READ', 'link-136');">CMD_READ</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-137', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-138', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-139', 'get_int', 'link-47');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-139" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-139', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-140', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="paramiko.BufferedFile.read
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="paramiko.BufferedFile.read
paramiko.SFTPHandle.read
-paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-140', 'read', 'link-107');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-141', 'read', 'link-108');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-141" class="py-name"><a title="paramiko.sftp.SFTP_EOF
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-142" class="py-name"><a title="paramiko.sftp.SFTP_EOF
paramiko.sftp_attr.SFTP_EOF
paramiko.sftp_client.SFTP_EOF
paramiko.sftp_file.SFTP_EOF
paramiko.sftp_handle.SFTP_EOF
paramiko.sftp_server.SFTP_EOF
-paramiko.sftp_si.SFTP_EOF" class="py-name" href="#" onclick="return doclink('link-141', 'SFTP_EOF', 'link-88');">SFTP_EOF</a></tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_EOF" class="py-name" href="#" onclick="return doclink('link-142', 'SFTP_EOF', 'link-88');">SFTP_EOF</a></tt><tt class="py-op">)</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-142" class="py-name" targets="Variable paramiko.sftp.CMD_DATA=paramiko.sftp-module.html#CMD_DATA,Variable paramiko.sftp_attr.CMD_DATA=paramiko.sftp_attr-module.html#CMD_DATA,Variable paramiko.sftp_client.CMD_DATA=paramiko.sftp_client-module.html#CMD_DATA,Variable paramiko.sftp_file.CMD_DATA=paramiko.sftp_file-module.html#CMD_DATA,Variable paramiko.sftp_handle.CMD_DATA=paramiko.sftp_handle-module.html#CMD_DATA,Variable paramiko.sftp_server.CMD_DATA=paramiko.sftp_server-module.html#CMD_DATA,Variable paramiko.sftp_si.CMD_DATA=paramiko.sftp_si-module.html#CMD_DATA"><a title="paramiko.sftp.CMD_DATA
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-143" class="py-name" targets="Variable paramiko.sftp.CMD_DATA=paramiko.sftp-module.html#CMD_DATA,Variable paramiko.sftp_attr.CMD_DATA=paramiko.sftp_attr-module.html#CMD_DATA,Variable paramiko.sftp_client.CMD_DATA=paramiko.sftp_client-module.html#CMD_DATA,Variable paramiko.sftp_file.CMD_DATA=paramiko.sftp_file-module.html#CMD_DATA,Variable paramiko.sftp_handle.CMD_DATA=paramiko.sftp_handle-module.html#CMD_DATA,Variable paramiko.sftp_server.CMD_DATA=paramiko.sftp_server-module.html#CMD_DATA,Variable paramiko.sftp_si.CMD_DATA=paramiko.sftp_si-module.html#CMD_DATA"><a title="paramiko.sftp.CMD_DATA
paramiko.sftp_attr.CMD_DATA
paramiko.sftp_client.CMD_DATA
paramiko.sftp_file.CMD_DATA
paramiko.sftp_handle.CMD_DATA
paramiko.sftp_server.CMD_DATA
-paramiko.sftp_si.CMD_DATA" class="py-name" href="#" onclick="return doclink('link-142', 'CMD_DATA', 'link-142');">CMD_DATA</a></tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_DATA" class="py-name" href="#" onclick="return doclink('link-143', 'CMD_DATA', 'link-143');">CMD_DATA</a></tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-143" class="py-name" targets="Variable paramiko.sftp.CMD_WRITE=paramiko.sftp-module.html#CMD_WRITE,Variable paramiko.sftp_attr.CMD_WRITE=paramiko.sftp_attr-module.html#CMD_WRITE,Variable paramiko.sftp_client.CMD_WRITE=paramiko.sftp_client-module.html#CMD_WRITE,Variable paramiko.sftp_file.CMD_WRITE=paramiko.sftp_file-module.html#CMD_WRITE,Variable paramiko.sftp_handle.CMD_WRITE=paramiko.sftp_handle-module.html#CMD_WRITE,Variable paramiko.sftp_server.CMD_WRITE=paramiko.sftp_server-module.html#CMD_WRITE,Variable paramiko.sftp_si.CMD_WRITE=paramiko.sftp_si-module.html#CMD_WRITE"><a title="paramiko.sftp.CMD_WRITE
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-144" class="py-name" targets="Variable paramiko.sftp.CMD_WRITE=paramiko.sftp-module.html#CMD_WRITE,Variable paramiko.sftp_attr.CMD_WRITE=paramiko.sftp_attr-module.html#CMD_WRITE,Variable paramiko.sftp_client.CMD_WRITE=paramiko.sftp_client-module.html#CMD_WRITE,Variable paramiko.sftp_file.CMD_WRITE=paramiko.sftp_file-module.html#CMD_WRITE,Variable paramiko.sftp_handle.CMD_WRITE=paramiko.sftp_handle-module.html#CMD_WRITE,Variable paramiko.sftp_server.CMD_WRITE=paramiko.sftp_server-module.html#CMD_WRITE,Variable paramiko.sftp_si.CMD_WRITE=paramiko.sftp_si-module.html#CMD_WRITE"><a title="paramiko.sftp.CMD_WRITE
paramiko.sftp_attr.CMD_WRITE
paramiko.sftp_client.CMD_WRITE
paramiko.sftp_file.CMD_WRITE
paramiko.sftp_handle.CMD_WRITE
paramiko.sftp_server.CMD_WRITE
-paramiko.sftp_si.CMD_WRITE" class="py-name" href="#" onclick="return doclink('link-143', 'CMD_WRITE', 'link-143');">CMD_WRITE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-144', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-145', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-146', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_WRITE" class="py-name" href="#" onclick="return doclink('link-144', 'CMD_WRITE', 'link-144');">CMD_WRITE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-145', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.Message.get_int64" class="py-name" href="#" onclick="return doclink('link-146', 'get_int64', 'link-97');">get_int64</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-147', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-147', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-148', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
-paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-148', 'write', 'link-148');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-149" class="py-name" targets="Variable paramiko.sftp.CMD_REMOVE=paramiko.sftp-module.html#CMD_REMOVE,Variable paramiko.sftp_attr.CMD_REMOVE=paramiko.sftp_attr-module.html#CMD_REMOVE,Variable paramiko.sftp_client.CMD_REMOVE=paramiko.sftp_client-module.html#CMD_REMOVE,Variable paramiko.sftp_file.CMD_REMOVE=paramiko.sftp_file-module.html#CMD_REMOVE,Variable paramiko.sftp_handle.CMD_REMOVE=paramiko.sftp_handle-module.html#CMD_REMOVE,Variable paramiko.sftp_server.CMD_REMOVE=paramiko.sftp_server-module.html#CMD_REMOVE,Variable paramiko.sftp_si.CMD_REMOVE=paramiko.sftp_si-module.html#CMD_REMOVE"><a title="paramiko.sftp.CMD_REMOVE
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-149', 'write', 'link-149');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-150" class="py-name" targets="Variable paramiko.sftp.CMD_REMOVE=paramiko.sftp-module.html#CMD_REMOVE,Variable paramiko.sftp_attr.CMD_REMOVE=paramiko.sftp_attr-module.html#CMD_REMOVE,Variable paramiko.sftp_client.CMD_REMOVE=paramiko.sftp_client-module.html#CMD_REMOVE,Variable paramiko.sftp_file.CMD_REMOVE=paramiko.sftp_file-module.html#CMD_REMOVE,Variable paramiko.sftp_handle.CMD_REMOVE=paramiko.sftp_handle-module.html#CMD_REMOVE,Variable paramiko.sftp_server.CMD_REMOVE=paramiko.sftp_server-module.html#CMD_REMOVE,Variable paramiko.sftp_si.CMD_REMOVE=paramiko.sftp_si-module.html#CMD_REMOVE"><a title="paramiko.sftp.CMD_REMOVE
paramiko.sftp_attr.CMD_REMOVE
paramiko.sftp_client.CMD_REMOVE
paramiko.sftp_file.CMD_REMOVE
paramiko.sftp_handle.CMD_REMOVE
paramiko.sftp_server.CMD_REMOVE
-paramiko.sftp_si.CMD_REMOVE" class="py-name" href="#" onclick="return doclink('link-149', 'CMD_REMOVE', 'link-149');">CMD_REMOVE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-150', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-151', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-152', 'remove', 'link-152');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-153" class="py-name" targets="Variable paramiko.sftp.CMD_RENAME=paramiko.sftp-module.html#CMD_RENAME,Variable paramiko.sftp_attr.CMD_RENAME=paramiko.sftp_attr-module.html#CMD_RENAME,Variable paramiko.sftp_client.CMD_RENAME=paramiko.sftp_client-module.html#CMD_RENAME,Variable paramiko.sftp_file.CMD_RENAME=paramiko.sftp_file-module.html#CMD_RENAME,Variable paramiko.sftp_handle.CMD_RENAME=paramiko.sftp_handle-module.html#CMD_RENAME,Variable paramiko.sftp_server.CMD_RENAME=paramiko.sftp_server-module.html#CMD_RENAME,Variable paramiko.sftp_si.CMD_RENAME=paramiko.sftp_si-module.html#CMD_RENAME"><a title="paramiko.sftp.CMD_RENAME
+paramiko.sftp_si.CMD_REMOVE" class="py-name" href="#" onclick="return doclink('link-150', 'CMD_REMOVE', 'link-150');">CMD_REMOVE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-151', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-152', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-153', 'remove', 'link-153');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-154" class="py-name" targets="Variable paramiko.sftp.CMD_RENAME=paramiko.sftp-module.html#CMD_RENAME,Variable paramiko.sftp_attr.CMD_RENAME=paramiko.sftp_attr-module.html#CMD_RENAME,Variable paramiko.sftp_client.CMD_RENAME=paramiko.sftp_client-module.html#CMD_RENAME,Variable paramiko.sftp_file.CMD_RENAME=paramiko.sftp_file-module.html#CMD_RENAME,Variable paramiko.sftp_handle.CMD_RENAME=paramiko.sftp_handle-module.html#CMD_RENAME,Variable paramiko.sftp_server.CMD_RENAME=paramiko.sftp_server-module.html#CMD_RENAME,Variable paramiko.sftp_si.CMD_RENAME=paramiko.sftp_si-module.html#CMD_RENAME"><a title="paramiko.sftp.CMD_RENAME
paramiko.sftp_attr.CMD_RENAME
paramiko.sftp_client.CMD_RENAME
paramiko.sftp_file.CMD_RENAME
paramiko.sftp_handle.CMD_RENAME
paramiko.sftp_server.CMD_RENAME
-paramiko.sftp_si.CMD_RENAME" class="py-name" href="#" onclick="return doclink('link-153', 'CMD_RENAME', 'link-153');">CMD_RENAME</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">oldpath</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-154', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">newpath</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-155', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-156', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method paramiko.SFTPClient.rename()=paramiko.SFTPClient-class.html#rename,Method paramiko.SFTPServerInterface.rename()=paramiko.SFTPServerInterface-class.html#rename"><a title="paramiko.SFTPClient.rename
-paramiko.SFTPServerInterface.rename" class="py-name" href="#" onclick="return doclink('link-157', 'rename', 'link-157');">rename</a></tt><tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-158" class="py-name" targets="Variable paramiko.sftp.CMD_MKDIR=paramiko.sftp-module.html#CMD_MKDIR,Variable paramiko.sftp_attr.CMD_MKDIR=paramiko.sftp_attr-module.html#CMD_MKDIR,Variable paramiko.sftp_client.CMD_MKDIR=paramiko.sftp_client-module.html#CMD_MKDIR,Variable paramiko.sftp_file.CMD_MKDIR=paramiko.sftp_file-module.html#CMD_MKDIR,Variable paramiko.sftp_handle.CMD_MKDIR=paramiko.sftp_handle-module.html#CMD_MKDIR,Variable paramiko.sftp_server.CMD_MKDIR=paramiko.sftp_server-module.html#CMD_MKDIR,Variable paramiko.sftp_si.CMD_MKDIR=paramiko.sftp_si-module.html#CMD_MKDIR"><a title="paramiko.sftp.CMD_MKDIR
+paramiko.sftp_si.CMD_RENAME" class="py-name" href="#" onclick="return doclink('link-154', 'CMD_RENAME', 'link-154');">CMD_RENAME</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">oldpath</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-155', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">newpath</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-156', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-157', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method paramiko.SFTPClient.rename()=paramiko.SFTPClient-class.html#rename,Method paramiko.SFTPServerInterface.rename()=paramiko.SFTPServerInterface-class.html#rename"><a title="paramiko.SFTPClient.rename
+paramiko.SFTPServerInterface.rename" class="py-name" href="#" onclick="return doclink('link-158', 'rename', 'link-158');">rename</a></tt><tt class="py-op">(</tt><tt class="py-name">oldpath</tt><tt class="py-op">,</tt> <tt class="py-name">newpath</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-159" class="py-name" targets="Variable paramiko.sftp.CMD_MKDIR=paramiko.sftp-module.html#CMD_MKDIR,Variable paramiko.sftp_attr.CMD_MKDIR=paramiko.sftp_attr-module.html#CMD_MKDIR,Variable paramiko.sftp_client.CMD_MKDIR=paramiko.sftp_client-module.html#CMD_MKDIR,Variable paramiko.sftp_file.CMD_MKDIR=paramiko.sftp_file-module.html#CMD_MKDIR,Variable paramiko.sftp_handle.CMD_MKDIR=paramiko.sftp_handle-module.html#CMD_MKDIR,Variable paramiko.sftp_server.CMD_MKDIR=paramiko.sftp_server-module.html#CMD_MKDIR,Variable paramiko.sftp_si.CMD_MKDIR=paramiko.sftp_si-module.html#CMD_MKDIR"><a title="paramiko.sftp.CMD_MKDIR
paramiko.sftp_attr.CMD_MKDIR
paramiko.sftp_client.CMD_MKDIR
paramiko.sftp_file.CMD_MKDIR
paramiko.sftp_handle.CMD_MKDIR
paramiko.sftp_server.CMD_MKDIR
-paramiko.sftp_si.CMD_MKDIR" class="py-name" href="#" onclick="return doclink('link-158', 'CMD_MKDIR', 'link-158');">CMD_MKDIR</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-159', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-160', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-161', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name" targets="Method paramiko.SFTPClient.mkdir()=paramiko.SFTPClient-class.html#mkdir,Method paramiko.SFTPServerInterface.mkdir()=paramiko.SFTPServerInterface-class.html#mkdir"><a title="paramiko.SFTPClient.mkdir
-paramiko.SFTPServerInterface.mkdir" class="py-name" href="#" onclick="return doclink('link-162', 'mkdir', 'link-162');">mkdir</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-163" class="py-name" targets="Variable paramiko.sftp.CMD_RMDIR=paramiko.sftp-module.html#CMD_RMDIR,Variable paramiko.sftp_attr.CMD_RMDIR=paramiko.sftp_attr-module.html#CMD_RMDIR,Variable paramiko.sftp_client.CMD_RMDIR=paramiko.sftp_client-module.html#CMD_RMDIR,Variable paramiko.sftp_file.CMD_RMDIR=paramiko.sftp_file-module.html#CMD_RMDIR,Variable paramiko.sftp_handle.CMD_RMDIR=paramiko.sftp_handle-module.html#CMD_RMDIR,Variable paramiko.sftp_server.CMD_RMDIR=paramiko.sftp_server-module.html#CMD_RMDIR,Variable paramiko.sftp_si.CMD_RMDIR=paramiko.sftp_si-module.html#CMD_RMDIR"><a title="paramiko.sftp.CMD_RMDIR
+paramiko.sftp_si.CMD_MKDIR" class="py-name" href="#" onclick="return doclink('link-159', 'CMD_MKDIR', 'link-159');">CMD_MKDIR</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-160', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-161" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-161', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-162', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Method paramiko.SFTPClient.mkdir()=paramiko.SFTPClient-class.html#mkdir,Method paramiko.SFTPServerInterface.mkdir()=paramiko.SFTPServerInterface-class.html#mkdir"><a title="paramiko.SFTPClient.mkdir
+paramiko.SFTPServerInterface.mkdir" class="py-name" href="#" onclick="return doclink('link-163', 'mkdir', 'link-163');">mkdir</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-164" class="py-name" targets="Variable paramiko.sftp.CMD_RMDIR=paramiko.sftp-module.html#CMD_RMDIR,Variable paramiko.sftp_attr.CMD_RMDIR=paramiko.sftp_attr-module.html#CMD_RMDIR,Variable paramiko.sftp_client.CMD_RMDIR=paramiko.sftp_client-module.html#CMD_RMDIR,Variable paramiko.sftp_file.CMD_RMDIR=paramiko.sftp_file-module.html#CMD_RMDIR,Variable paramiko.sftp_handle.CMD_RMDIR=paramiko.sftp_handle-module.html#CMD_RMDIR,Variable paramiko.sftp_server.CMD_RMDIR=paramiko.sftp_server-module.html#CMD_RMDIR,Variable paramiko.sftp_si.CMD_RMDIR=paramiko.sftp_si-module.html#CMD_RMDIR"><a title="paramiko.sftp.CMD_RMDIR
paramiko.sftp_attr.CMD_RMDIR
paramiko.sftp_client.CMD_RMDIR
paramiko.sftp_file.CMD_RMDIR
paramiko.sftp_handle.CMD_RMDIR
paramiko.sftp_server.CMD_RMDIR
-paramiko.sftp_si.CMD_RMDIR" class="py-name" href="#" onclick="return doclink('link-163', 'CMD_RMDIR', 'link-163');">CMD_RMDIR</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-164', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-165', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Method paramiko.SFTPClient.rmdir()=paramiko.SFTPClient-class.html#rmdir,Method paramiko.SFTPServerInterface.rmdir()=paramiko.SFTPServerInterface-class.html#rmdir"><a title="paramiko.SFTPClient.rmdir
-paramiko.SFTPServerInterface.rmdir" class="py-name" href="#" onclick="return doclink('link-166', 'rmdir', 'link-166');">rmdir</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-167" class="py-name" targets="Variable paramiko.sftp.CMD_OPENDIR=paramiko.sftp-module.html#CMD_OPENDIR,Variable paramiko.sftp_attr.CMD_OPENDIR=paramiko.sftp_attr-module.html#CMD_OPENDIR,Variable paramiko.sftp_client.CMD_OPENDIR=paramiko.sftp_client-module.html#CMD_OPENDIR,Variable paramiko.sftp_file.CMD_OPENDIR=paramiko.sftp_file-module.html#CMD_OPENDIR,Variable paramiko.sftp_handle.CMD_OPENDIR=paramiko.sftp_handle-module.html#CMD_OPENDIR,Variable paramiko.sftp_server.CMD_OPENDIR=paramiko.sftp_server-module.html#CMD_OPENDIR,Variable paramiko.sftp_si.CMD_OPENDIR=paramiko.sftp_si-module.html#CMD_OPENDIR"><a title="paramiko.sftp.CMD_OPENDIR
+paramiko.sftp_si.CMD_RMDIR" class="py-name" href="#" onclick="return doclink('link-164', 'CMD_RMDIR', 'link-164');">CMD_RMDIR</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-165', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-166', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Method paramiko.SFTPClient.rmdir()=paramiko.SFTPClient-class.html#rmdir,Method paramiko.SFTPServerInterface.rmdir()=paramiko.SFTPServerInterface-class.html#rmdir"><a title="paramiko.SFTPClient.rmdir
+paramiko.SFTPServerInterface.rmdir" class="py-name" href="#" onclick="return doclink('link-167', 'rmdir', 'link-167');">rmdir</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-168" class="py-name" targets="Variable paramiko.sftp.CMD_OPENDIR=paramiko.sftp-module.html#CMD_OPENDIR,Variable paramiko.sftp_attr.CMD_OPENDIR=paramiko.sftp_attr-module.html#CMD_OPENDIR,Variable paramiko.sftp_client.CMD_OPENDIR=paramiko.sftp_client-module.html#CMD_OPENDIR,Variable paramiko.sftp_file.CMD_OPENDIR=paramiko.sftp_file-module.html#CMD_OPENDIR,Variable paramiko.sftp_handle.CMD_OPENDIR=paramiko.sftp_handle-module.html#CMD_OPENDIR,Variable paramiko.sftp_server.CMD_OPENDIR=paramiko.sftp_server-module.html#CMD_OPENDIR,Variable paramiko.sftp_si.CMD_OPENDIR=paramiko.sftp_si-module.html#CMD_OPENDIR"><a title="paramiko.sftp.CMD_OPENDIR
paramiko.sftp_attr.CMD_OPENDIR
paramiko.sftp_client.CMD_OPENDIR
paramiko.sftp_file.CMD_OPENDIR
paramiko.sftp_handle.CMD_OPENDIR
paramiko.sftp_server.CMD_OPENDIR
-paramiko.sftp_si.CMD_OPENDIR" class="py-name" href="#" onclick="return doclink('link-167', 'CMD_OPENDIR', 'link-167');">CMD_OPENDIR</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-168', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_OPENDIR" class="py-name" href="#" onclick="return doclink('link-168', 'CMD_OPENDIR', 'link-168');">CMD_OPENDIR</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-169', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_open_folder</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-169" class="py-name" targets="Variable paramiko.sftp.CMD_READDIR=paramiko.sftp-module.html#CMD_READDIR,Variable paramiko.sftp_attr.CMD_READDIR=paramiko.sftp_attr-module.html#CMD_READDIR,Variable paramiko.sftp_client.CMD_READDIR=paramiko.sftp_client-module.html#CMD_READDIR,Variable paramiko.sftp_file.CMD_READDIR=paramiko.sftp_file-module.html#CMD_READDIR,Variable paramiko.sftp_handle.CMD_READDIR=paramiko.sftp_handle-module.html#CMD_READDIR,Variable paramiko.sftp_server.CMD_READDIR=paramiko.sftp_server-module.html#CMD_READDIR,Variable paramiko.sftp_si.CMD_READDIR=paramiko.sftp_si-module.html#CMD_READDIR"><a title="paramiko.sftp.CMD_READDIR
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-170" class="py-name" targets="Variable paramiko.sftp.CMD_READDIR=paramiko.sftp-module.html#CMD_READDIR,Variable paramiko.sftp_attr.CMD_READDIR=paramiko.sftp_attr-module.html#CMD_READDIR,Variable paramiko.sftp_client.CMD_READDIR=paramiko.sftp_client-module.html#CMD_READDIR,Variable paramiko.sftp_file.CMD_READDIR=paramiko.sftp_file-module.html#CMD_READDIR,Variable paramiko.sftp_handle.CMD_READDIR=paramiko.sftp_handle-module.html#CMD_READDIR,Variable paramiko.sftp_server.CMD_READDIR=paramiko.sftp_server-module.html#CMD_READDIR,Variable paramiko.sftp_si.CMD_READDIR=paramiko.sftp_si-module.html#CMD_READDIR"><a title="paramiko.sftp.CMD_READDIR
paramiko.sftp_attr.CMD_READDIR
paramiko.sftp_client.CMD_READDIR
paramiko.sftp_file.CMD_READDIR
paramiko.sftp_handle.CMD_READDIR
paramiko.sftp_server.CMD_READDIR
-paramiko.sftp_si.CMD_READDIR" class="py-name" href="#" onclick="return doclink('link-169', 'CMD_READDIR', 'link-169');">CMD_READDIR</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-170', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_READDIR" class="py-name" href="#" onclick="return doclink('link-170', 'CMD_READDIR', 'link-170');">CMD_READDIR</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-171', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">folder_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-171" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-172" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-171', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-172', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-name">folder</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">folder_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt> </tt>
<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_folder</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">folder</tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-172" class="py-name" targets="Variable paramiko.sftp.CMD_STAT=paramiko.sftp-module.html#CMD_STAT,Variable paramiko.sftp_attr.CMD_STAT=paramiko.sftp_attr-module.html#CMD_STAT,Variable paramiko.sftp_client.CMD_STAT=paramiko.sftp_client-module.html#CMD_STAT,Variable paramiko.sftp_file.CMD_STAT=paramiko.sftp_file-module.html#CMD_STAT,Variable paramiko.sftp_handle.CMD_STAT=paramiko.sftp_handle-module.html#CMD_STAT,Variable paramiko.sftp_server.CMD_STAT=paramiko.sftp_server-module.html#CMD_STAT,Variable paramiko.sftp_si.CMD_STAT=paramiko.sftp_si-module.html#CMD_STAT"><a title="paramiko.sftp.CMD_STAT
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-173" class="py-name" targets="Variable paramiko.sftp.CMD_STAT=paramiko.sftp-module.html#CMD_STAT,Variable paramiko.sftp_attr.CMD_STAT=paramiko.sftp_attr-module.html#CMD_STAT,Variable paramiko.sftp_client.CMD_STAT=paramiko.sftp_client-module.html#CMD_STAT,Variable paramiko.sftp_file.CMD_STAT=paramiko.sftp_file-module.html#CMD_STAT,Variable paramiko.sftp_handle.CMD_STAT=paramiko.sftp_handle-module.html#CMD_STAT,Variable paramiko.sftp_server.CMD_STAT=paramiko.sftp_server-module.html#CMD_STAT,Variable paramiko.sftp_si.CMD_STAT=paramiko.sftp_si-module.html#CMD_STAT"><a title="paramiko.sftp.CMD_STAT
paramiko.sftp_attr.CMD_STAT
paramiko.sftp_client.CMD_STAT
paramiko.sftp_file.CMD_STAT
paramiko.sftp_handle.CMD_STAT
paramiko.sftp_server.CMD_STAT
-paramiko.sftp_si.CMD_STAT" class="py-name" href="#" onclick="return doclink('link-172', 'CMD_STAT', 'link-172');">CMD_STAT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-173', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-174', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.SFTPClient.stat
+paramiko.sftp_si.CMD_STAT" class="py-name" href="#" onclick="return doclink('link-173', 'CMD_STAT', 'link-173');">CMD_STAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-174', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-175', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-175', 'stat', 'link-104');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-176" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-176', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-177" class="py-name" targets="Variable paramiko.sftp.CMD_ATTRS=paramiko.sftp-module.html#CMD_ATTRS,Variable paramiko.sftp_attr.CMD_ATTRS=paramiko.sftp_attr-module.html#CMD_ATTRS,Variable paramiko.sftp_client.CMD_ATTRS=paramiko.sftp_client-module.html#CMD_ATTRS,Variable paramiko.sftp_file.CMD_ATTRS=paramiko.sftp_file-module.html#CMD_ATTRS,Variable paramiko.sftp_handle.CMD_ATTRS=paramiko.sftp_handle-module.html#CMD_ATTRS,Variable paramiko.sftp_server.CMD_ATTRS=paramiko.sftp_server-module.html#CMD_ATTRS,Variable paramiko.sftp_si.CMD_ATTRS=paramiko.sftp_si-module.html#CMD_ATTRS"><a title="paramiko.sftp.CMD_ATTRS
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-176', 'stat', 'link-104');">stat</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-177" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-177', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-178" class="py-name" targets="Variable paramiko.sftp.CMD_ATTRS=paramiko.sftp-module.html#CMD_ATTRS,Variable paramiko.sftp_attr.CMD_ATTRS=paramiko.sftp_attr-module.html#CMD_ATTRS,Variable paramiko.sftp_client.CMD_ATTRS=paramiko.sftp_client-module.html#CMD_ATTRS,Variable paramiko.sftp_file.CMD_ATTRS=paramiko.sftp_file-module.html#CMD_ATTRS,Variable paramiko.sftp_handle.CMD_ATTRS=paramiko.sftp_handle-module.html#CMD_ATTRS,Variable paramiko.sftp_server.CMD_ATTRS=paramiko.sftp_server-module.html#CMD_ATTRS,Variable paramiko.sftp_si.CMD_ATTRS=paramiko.sftp_si-module.html#CMD_ATTRS"><a title="paramiko.sftp.CMD_ATTRS
paramiko.sftp_attr.CMD_ATTRS
paramiko.sftp_client.CMD_ATTRS
paramiko.sftp_file.CMD_ATTRS
paramiko.sftp_handle.CMD_ATTRS
paramiko.sftp_server.CMD_ATTRS
-paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-177', 'CMD_ATTRS', 'link-177');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-178', 'CMD_ATTRS', 'link-178');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-178" class="py-name" targets="Variable paramiko.sftp.CMD_LSTAT=paramiko.sftp-module.html#CMD_LSTAT,Variable paramiko.sftp_attr.CMD_LSTAT=paramiko.sftp_attr-module.html#CMD_LSTAT,Variable paramiko.sftp_client.CMD_LSTAT=paramiko.sftp_client-module.html#CMD_LSTAT,Variable paramiko.sftp_file.CMD_LSTAT=paramiko.sftp_file-module.html#CMD_LSTAT,Variable paramiko.sftp_handle.CMD_LSTAT=paramiko.sftp_handle-module.html#CMD_LSTAT,Variable paramiko.sftp_server.CMD_LSTAT=paramiko.sftp_server-module.html#CMD_LSTAT,Variable paramiko.sftp_si.CMD_LSTAT=paramiko.sftp_si-module.html#CMD_LSTAT"><a title="paramiko.sftp.CMD_LSTAT
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-179" class="py-name" targets="Variable paramiko.sftp.CMD_LSTAT=paramiko.sftp-module.html#CMD_LSTAT,Variable paramiko.sftp_attr.CMD_LSTAT=paramiko.sftp_attr-module.html#CMD_LSTAT,Variable paramiko.sftp_client.CMD_LSTAT=paramiko.sftp_client-module.html#CMD_LSTAT,Variable paramiko.sftp_file.CMD_LSTAT=paramiko.sftp_file-module.html#CMD_LSTAT,Variable paramiko.sftp_handle.CMD_LSTAT=paramiko.sftp_handle-module.html#CMD_LSTAT,Variable paramiko.sftp_server.CMD_LSTAT=paramiko.sftp_server-module.html#CMD_LSTAT,Variable paramiko.sftp_si.CMD_LSTAT=paramiko.sftp_si-module.html#CMD_LSTAT"><a title="paramiko.sftp.CMD_LSTAT
paramiko.sftp_attr.CMD_LSTAT
paramiko.sftp_client.CMD_LSTAT
paramiko.sftp_file.CMD_LSTAT
paramiko.sftp_handle.CMD_LSTAT
paramiko.sftp_server.CMD_LSTAT
-paramiko.sftp_si.CMD_LSTAT" class="py-name" href="#" onclick="return doclink('link-178', 'CMD_LSTAT', 'link-178');">CMD_LSTAT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-179', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-180', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Method paramiko.SFTPClient.lstat()=paramiko.SFTPClient-class.html#lstat,Method paramiko.SFTPServerInterface.lstat()=paramiko.SFTPServerInterface-class.html#lstat"><a title="paramiko.SFTPClient.lstat
-paramiko.SFTPServerInterface.lstat" class="py-name" href="#" onclick="return doclink('link-181', 'lstat', 'link-181');">lstat</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-182" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-182', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-183" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
+paramiko.sftp_si.CMD_LSTAT" class="py-name" href="#" onclick="return doclink('link-179', 'CMD_LSTAT', 'link-179');">CMD_LSTAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-180', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-181', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method paramiko.SFTPClient.lstat()=paramiko.SFTPClient-class.html#lstat,Method paramiko.SFTPServerInterface.lstat()=paramiko.SFTPServerInterface-class.html#lstat"><a title="paramiko.SFTPClient.lstat
+paramiko.SFTPServerInterface.lstat" class="py-name" href="#" onclick="return doclink('link-182', 'lstat', 'link-182');">lstat</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-183" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-183', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-184" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
paramiko.sftp_attr.CMD_ATTRS
paramiko.sftp_client.CMD_ATTRS
paramiko.sftp_file.CMD_ATTRS
paramiko.sftp_handle.CMD_ATTRS
paramiko.sftp_server.CMD_ATTRS
-paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-183', 'CMD_ATTRS', 'link-177');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-184', 'CMD_ATTRS', 'link-178');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-184" class="py-name" targets="Variable paramiko.sftp.CMD_FSTAT=paramiko.sftp-module.html#CMD_FSTAT,Variable paramiko.sftp_attr.CMD_FSTAT=paramiko.sftp_attr-module.html#CMD_FSTAT,Variable paramiko.sftp_client.CMD_FSTAT=paramiko.sftp_client-module.html#CMD_FSTAT,Variable paramiko.sftp_file.CMD_FSTAT=paramiko.sftp_file-module.html#CMD_FSTAT,Variable paramiko.sftp_handle.CMD_FSTAT=paramiko.sftp_handle-module.html#CMD_FSTAT,Variable paramiko.sftp_server.CMD_FSTAT=paramiko.sftp_server-module.html#CMD_FSTAT,Variable paramiko.sftp_si.CMD_FSTAT=paramiko.sftp_si-module.html#CMD_FSTAT"><a title="paramiko.sftp.CMD_FSTAT
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-185" class="py-name" targets="Variable paramiko.sftp.CMD_FSTAT=paramiko.sftp-module.html#CMD_FSTAT,Variable paramiko.sftp_attr.CMD_FSTAT=paramiko.sftp_attr-module.html#CMD_FSTAT,Variable paramiko.sftp_client.CMD_FSTAT=paramiko.sftp_client-module.html#CMD_FSTAT,Variable paramiko.sftp_file.CMD_FSTAT=paramiko.sftp_file-module.html#CMD_FSTAT,Variable paramiko.sftp_handle.CMD_FSTAT=paramiko.sftp_handle-module.html#CMD_FSTAT,Variable paramiko.sftp_server.CMD_FSTAT=paramiko.sftp_server-module.html#CMD_FSTAT,Variable paramiko.sftp_si.CMD_FSTAT=paramiko.sftp_si-module.html#CMD_FSTAT"><a title="paramiko.sftp.CMD_FSTAT
paramiko.sftp_attr.CMD_FSTAT
paramiko.sftp_client.CMD_FSTAT
paramiko.sftp_file.CMD_FSTAT
paramiko.sftp_handle.CMD_FSTAT
paramiko.sftp_server.CMD_FSTAT
-paramiko.sftp_si.CMD_FSTAT" class="py-name" href="#" onclick="return doclink('link-184', 'CMD_FSTAT', 'link-184');">CMD_FSTAT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-185', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_FSTAT" class="py-name" href="#" onclick="return doclink('link-185', 'CMD_FSTAT', 'link-185');">CMD_FSTAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-186', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-186" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-187" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-186', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-187', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="paramiko.SFTPClient.stat
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="paramiko.SFTPClient.stat
paramiko.SFTPFile.stat
paramiko.SFTPHandle.stat
-paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-187', 'stat', 'link-104');">stat</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-188" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-188', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-189" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-188', 'stat', 'link-104');">stat</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-189" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-189', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-190" class="py-name"><a title="paramiko.sftp.CMD_ATTRS
paramiko.sftp_attr.CMD_ATTRS
paramiko.sftp_client.CMD_ATTRS
paramiko.sftp_file.CMD_ATTRS
paramiko.sftp_handle.CMD_ATTRS
paramiko.sftp_server.CMD_ATTRS
-paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-189', 'CMD_ATTRS', 'link-177');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_ATTRS" class="py-name" href="#" onclick="return doclink('link-190', 'CMD_ATTRS', 'link-178');">CMD_ATTRS</a></tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-190" class="py-name" targets="Variable paramiko.sftp.CMD_SETSTAT=paramiko.sftp-module.html#CMD_SETSTAT,Variable paramiko.sftp_attr.CMD_SETSTAT=paramiko.sftp_attr-module.html#CMD_SETSTAT,Variable paramiko.sftp_client.CMD_SETSTAT=paramiko.sftp_client-module.html#CMD_SETSTAT,Variable paramiko.sftp_file.CMD_SETSTAT=paramiko.sftp_file-module.html#CMD_SETSTAT,Variable paramiko.sftp_handle.CMD_SETSTAT=paramiko.sftp_handle-module.html#CMD_SETSTAT,Variable paramiko.sftp_server.CMD_SETSTAT=paramiko.sftp_server-module.html#CMD_SETSTAT,Variable paramiko.sftp_si.CMD_SETSTAT=paramiko.sftp_si-module.html#CMD_SETSTAT"><a title="paramiko.sftp.CMD_SETSTAT
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-191" class="py-name" targets="Variable paramiko.sftp.CMD_SETSTAT=paramiko.sftp-module.html#CMD_SETSTAT,Variable paramiko.sftp_attr.CMD_SETSTAT=paramiko.sftp_attr-module.html#CMD_SETSTAT,Variable paramiko.sftp_client.CMD_SETSTAT=paramiko.sftp_client-module.html#CMD_SETSTAT,Variable paramiko.sftp_file.CMD_SETSTAT=paramiko.sftp_file-module.html#CMD_SETSTAT,Variable paramiko.sftp_handle.CMD_SETSTAT=paramiko.sftp_handle-module.html#CMD_SETSTAT,Variable paramiko.sftp_server.CMD_SETSTAT=paramiko.sftp_server-module.html#CMD_SETSTAT,Variable paramiko.sftp_si.CMD_SETSTAT=paramiko.sftp_si-module.html#CMD_SETSTAT"><a title="paramiko.sftp.CMD_SETSTAT
paramiko.sftp_attr.CMD_SETSTAT
paramiko.sftp_client.CMD_SETSTAT
paramiko.sftp_file.CMD_SETSTAT
paramiko.sftp_handle.CMD_SETSTAT
paramiko.sftp_server.CMD_SETSTAT
-paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-190', 'CMD_SETSTAT', 'link-190');">CMD_SETSTAT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-191', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-192', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-193', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-194" class="py-name" targets="Method paramiko.SFTPHandle.chattr()=paramiko.SFTPHandle-class.html#chattr,Method paramiko.SFTPServerInterface.chattr()=paramiko.SFTPServerInterface-class.html#chattr"><a title="paramiko.SFTPHandle.chattr
-paramiko.SFTPServerInterface.chattr" class="py-name" href="#" onclick="return doclink('link-194', 'chattr', 'link-194');">chattr</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-195" class="py-name" targets="Variable paramiko.sftp.CMD_FSETSTAT=paramiko.sftp-module.html#CMD_FSETSTAT,Variable paramiko.sftp_attr.CMD_FSETSTAT=paramiko.sftp_attr-module.html#CMD_FSETSTAT,Variable paramiko.sftp_client.CMD_FSETSTAT=paramiko.sftp_client-module.html#CMD_FSETSTAT,Variable paramiko.sftp_file.CMD_FSETSTAT=paramiko.sftp_file-module.html#CMD_FSETSTAT,Variable paramiko.sftp_handle.CMD_FSETSTAT=paramiko.sftp_handle-module.html#CMD_FSETSTAT,Variable paramiko.sftp_server.CMD_FSETSTAT=paramiko.sftp_server-module.html#CMD_FSETSTAT,Variable paramiko.sftp_si.CMD_FSETSTAT=paramiko.sftp_si-module.html#CMD_FSETSTAT"><a title="paramiko.sftp.CMD_FSETSTAT
+paramiko.sftp_si.CMD_SETSTAT" class="py-name" href="#" onclick="return doclink('link-191', 'CMD_SETSTAT', 'link-191');">CMD_SETSTAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-192', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-193', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-194', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-195" class="py-name" targets="Method paramiko.SFTPHandle.chattr()=paramiko.SFTPHandle-class.html#chattr,Method paramiko.SFTPServerInterface.chattr()=paramiko.SFTPServerInterface-class.html#chattr"><a title="paramiko.SFTPHandle.chattr
+paramiko.SFTPServerInterface.chattr" class="py-name" href="#" onclick="return doclink('link-195', 'chattr', 'link-195');">chattr</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-196" class="py-name" targets="Variable paramiko.sftp.CMD_FSETSTAT=paramiko.sftp-module.html#CMD_FSETSTAT,Variable paramiko.sftp_attr.CMD_FSETSTAT=paramiko.sftp_attr-module.html#CMD_FSETSTAT,Variable paramiko.sftp_client.CMD_FSETSTAT=paramiko.sftp_client-module.html#CMD_FSETSTAT,Variable paramiko.sftp_file.CMD_FSETSTAT=paramiko.sftp_file-module.html#CMD_FSETSTAT,Variable paramiko.sftp_handle.CMD_FSETSTAT=paramiko.sftp_handle-module.html#CMD_FSETSTAT,Variable paramiko.sftp_server.CMD_FSETSTAT=paramiko.sftp_server-module.html#CMD_FSETSTAT,Variable paramiko.sftp_si.CMD_FSETSTAT=paramiko.sftp_si-module.html#CMD_FSETSTAT"><a title="paramiko.sftp.CMD_FSETSTAT
paramiko.sftp_attr.CMD_FSETSTAT
paramiko.sftp_client.CMD_FSETSTAT
paramiko.sftp_file.CMD_FSETSTAT
paramiko.sftp_handle.CMD_FSETSTAT
paramiko.sftp_server.CMD_FSETSTAT
-paramiko.sftp_si.CMD_FSETSTAT" class="py-name" href="#" onclick="return doclink('link-195', 'CMD_FSETSTAT', 'link-195');">CMD_FSETSTAT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-196', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-197', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_FSETSTAT" class="py-name" href="#" onclick="return doclink('link-196', 'CMD_FSETSTAT', 'link-196');">CMD_FSETSTAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">handle</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-197', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-198" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-198', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">.</tt><tt class="py-name">_from_msg</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handle</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-198" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-199" class="py-name"><a title="paramiko.sftp.SFTP_BAD_MESSAGE
paramiko.sftp_attr.SFTP_BAD_MESSAGE
paramiko.sftp_client.SFTP_BAD_MESSAGE
paramiko.sftp_file.SFTP_BAD_MESSAGE
paramiko.sftp_handle.SFTP_BAD_MESSAGE
paramiko.sftp_server.SFTP_BAD_MESSAGE
-paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-198', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_BAD_MESSAGE" class="py-name" href="#" onclick="return doclink('link-199', 'SFTP_BAD_MESSAGE', 'link-100');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Invalid handle'</tt><tt class="py-op">)</tt> </tt>
<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="paramiko.SFTPHandle.chattr
-paramiko.SFTPServerInterface.chattr" class="py-name" href="#" onclick="return doclink('link-199', 'chattr', 'link-194');">chattr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-200" class="py-name" targets="Variable paramiko.sftp.CMD_READLINK=paramiko.sftp-module.html#CMD_READLINK,Variable paramiko.sftp_attr.CMD_READLINK=paramiko.sftp_attr-module.html#CMD_READLINK,Variable paramiko.sftp_client.CMD_READLINK=paramiko.sftp_client-module.html#CMD_READLINK,Variable paramiko.sftp_file.CMD_READLINK=paramiko.sftp_file-module.html#CMD_READLINK,Variable paramiko.sftp_handle.CMD_READLINK=paramiko.sftp_handle-module.html#CMD_READLINK,Variable paramiko.sftp_server.CMD_READLINK=paramiko.sftp_server-module.html#CMD_READLINK,Variable paramiko.sftp_si.CMD_READLINK=paramiko.sftp_si-module.html#CMD_READLINK"><a title="paramiko.sftp.CMD_READLINK
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file_table</tt><tt class="py-op">[</tt><tt class="py-name">handle</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="paramiko.SFTPHandle.chattr
+paramiko.SFTPServerInterface.chattr" class="py-name" href="#" onclick="return doclink('link-200', 'chattr', 'link-195');">chattr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-201" class="py-name" targets="Variable paramiko.sftp.CMD_READLINK=paramiko.sftp-module.html#CMD_READLINK,Variable paramiko.sftp_attr.CMD_READLINK=paramiko.sftp_attr-module.html#CMD_READLINK,Variable paramiko.sftp_client.CMD_READLINK=paramiko.sftp_client-module.html#CMD_READLINK,Variable paramiko.sftp_file.CMD_READLINK=paramiko.sftp_file-module.html#CMD_READLINK,Variable paramiko.sftp_handle.CMD_READLINK=paramiko.sftp_handle-module.html#CMD_READLINK,Variable paramiko.sftp_server.CMD_READLINK=paramiko.sftp_server-module.html#CMD_READLINK,Variable paramiko.sftp_si.CMD_READLINK=paramiko.sftp_si-module.html#CMD_READLINK"><a title="paramiko.sftp.CMD_READLINK
paramiko.sftp_attr.CMD_READLINK
paramiko.sftp_client.CMD_READLINK
paramiko.sftp_file.CMD_READLINK
paramiko.sftp_handle.CMD_READLINK
paramiko.sftp_server.CMD_READLINK
-paramiko.sftp_si.CMD_READLINK" class="py-name" href="#" onclick="return doclink('link-200', 'CMD_READLINK', 'link-200');">CMD_READLINK</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-201', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-202', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-203" class="py-name" targets="Method paramiko.SFTPClient.readlink()=paramiko.SFTPClient-class.html#readlink,Method paramiko.SFTPServerInterface.readlink()=paramiko.SFTPServerInterface-class.html#readlink"><a title="paramiko.SFTPClient.readlink
-paramiko.SFTPServerInterface.readlink" class="py-name" href="#" onclick="return doclink('link-203', 'readlink', 'link-203');">readlink</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_READLINK" class="py-name" href="#" onclick="return doclink('link-201', 'CMD_READLINK', 'link-201');">CMD_READLINK</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-202', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-203', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method paramiko.SFTPClient.readlink()=paramiko.SFTPClient-class.html#readlink,Method paramiko.SFTPServerInterface.readlink()=paramiko.SFTPServerInterface-class.html#readlink"><a title="paramiko.SFTPClient.readlink
+paramiko.SFTPServerInterface.readlink" class="py-name" href="#" onclick="return doclink('link-204', 'readlink', 'link-204');">readlink</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-204" class="py-name"><a title="paramiko.sftp.CMD_NAME
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-205" class="py-name"><a title="paramiko.sftp.CMD_NAME
paramiko.sftp_attr.CMD_NAME
paramiko.sftp_client.CMD_NAME
paramiko.sftp_file.CMD_NAME
paramiko.sftp_handle.CMD_NAME
paramiko.sftp_server.CMD_NAME
-paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-204', 'CMD_NAME', 'link-94');">CMD_NAME</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-205" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-205', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-205', 'CMD_NAME', 'link-94');">CMD_NAME</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-206" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-206', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-206" class="py-name" targets="Variable paramiko.sftp.CMD_SYMLINK=paramiko.sftp-module.html#CMD_SYMLINK,Variable paramiko.sftp_attr.CMD_SYMLINK=paramiko.sftp_attr-module.html#CMD_SYMLINK,Variable paramiko.sftp_client.CMD_SYMLINK=paramiko.sftp_client-module.html#CMD_SYMLINK,Variable paramiko.sftp_file.CMD_SYMLINK=paramiko.sftp_file-module.html#CMD_SYMLINK,Variable paramiko.sftp_handle.CMD_SYMLINK=paramiko.sftp_handle-module.html#CMD_SYMLINK,Variable paramiko.sftp_server.CMD_SYMLINK=paramiko.sftp_server-module.html#CMD_SYMLINK,Variable paramiko.sftp_si.CMD_SYMLINK=paramiko.sftp_si-module.html#CMD_SYMLINK"><a title="paramiko.sftp.CMD_SYMLINK
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-207" class="py-name" targets="Variable paramiko.sftp.CMD_SYMLINK=paramiko.sftp-module.html#CMD_SYMLINK,Variable paramiko.sftp_attr.CMD_SYMLINK=paramiko.sftp_attr-module.html#CMD_SYMLINK,Variable paramiko.sftp_client.CMD_SYMLINK=paramiko.sftp_client-module.html#CMD_SYMLINK,Variable paramiko.sftp_file.CMD_SYMLINK=paramiko.sftp_file-module.html#CMD_SYMLINK,Variable paramiko.sftp_handle.CMD_SYMLINK=paramiko.sftp_handle-module.html#CMD_SYMLINK,Variable paramiko.sftp_server.CMD_SYMLINK=paramiko.sftp_server-module.html#CMD_SYMLINK,Variable paramiko.sftp_si.CMD_SYMLINK=paramiko.sftp_si-module.html#CMD_SYMLINK"><a title="paramiko.sftp.CMD_SYMLINK
paramiko.sftp_attr.CMD_SYMLINK
paramiko.sftp_client.CMD_SYMLINK
paramiko.sftp_file.CMD_SYMLINK
paramiko.sftp_handle.CMD_SYMLINK
paramiko.sftp_server.CMD_SYMLINK
-paramiko.sftp_si.CMD_SYMLINK" class="py-name" href="#" onclick="return doclink('link-206', 'CMD_SYMLINK', 'link-206');">CMD_SYMLINK</a></tt><tt class="py-op">:</tt> </tt>
+paramiko.sftp_si.CMD_SYMLINK" class="py-name" href="#" onclick="return doclink('link-207', 'CMD_SYMLINK', 'link-207');">CMD_SYMLINK</a></tt><tt class="py-op">:</tt> </tt>
<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-comment"># the sftp 2 draft is incorrect here! path always follows target_path</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">target_path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-207', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-208', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-209', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-210" class="py-name" targets="Method paramiko.SFTPClient.symlink()=paramiko.SFTPClient-class.html#symlink,Method paramiko.SFTPServerInterface.symlink()=paramiko.SFTPServerInterface-class.html#symlink"><a title="paramiko.SFTPClient.symlink
-paramiko.SFTPServerInterface.symlink" class="py-name" href="#" onclick="return doclink('link-210', 'symlink', 'link-210');">symlink</a></tt><tt class="py-op">(</tt><tt class="py-name">target_path</tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-211" class="py-name" targets="Variable paramiko.sftp.CMD_REALPATH=paramiko.sftp-module.html#CMD_REALPATH,Variable paramiko.sftp_attr.CMD_REALPATH=paramiko.sftp_attr-module.html#CMD_REALPATH,Variable paramiko.sftp_client.CMD_REALPATH=paramiko.sftp_client-module.html#CMD_REALPATH,Variable paramiko.sftp_file.CMD_REALPATH=paramiko.sftp_file-module.html#CMD_REALPATH,Variable paramiko.sftp_handle.CMD_REALPATH=paramiko.sftp_handle-module.html#CMD_REALPATH,Variable paramiko.sftp_server.CMD_REALPATH=paramiko.sftp_server-module.html#CMD_REALPATH,Variable paramiko.sftp_si.CMD_REALPATH=paramiko.sftp_si-module.html#CMD_REALPATH"><a title="paramiko.sftp.CMD_REALPATH
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">target_path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-208', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-209', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-210', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-211" class="py-name" targets="Method paramiko.SFTPClient.symlink()=paramiko.SFTPClient-class.html#symlink,Method paramiko.SFTPServerInterface.symlink()=paramiko.SFTPServerInterface-class.html#symlink"><a title="paramiko.SFTPClient.symlink
+paramiko.SFTPServerInterface.symlink" class="py-name" href="#" onclick="return doclink('link-211', 'symlink', 'link-211');">symlink</a></tt><tt class="py-op">(</tt><tt class="py-name">target_path</tt><tt class="py-op">,</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-212" class="py-name" targets="Variable paramiko.sftp.CMD_REALPATH=paramiko.sftp-module.html#CMD_REALPATH,Variable paramiko.sftp_attr.CMD_REALPATH=paramiko.sftp_attr-module.html#CMD_REALPATH,Variable paramiko.sftp_client.CMD_REALPATH=paramiko.sftp_client-module.html#CMD_REALPATH,Variable paramiko.sftp_file.CMD_REALPATH=paramiko.sftp_file-module.html#CMD_REALPATH,Variable paramiko.sftp_handle.CMD_REALPATH=paramiko.sftp_handle-module.html#CMD_REALPATH,Variable paramiko.sftp_server.CMD_REALPATH=paramiko.sftp_server-module.html#CMD_REALPATH,Variable paramiko.sftp_si.CMD_REALPATH=paramiko.sftp_si-module.html#CMD_REALPATH"><a title="paramiko.sftp.CMD_REALPATH
paramiko.sftp_attr.CMD_REALPATH
paramiko.sftp_client.CMD_REALPATH
paramiko.sftp_file.CMD_REALPATH
paramiko.sftp_handle.CMD_REALPATH
paramiko.sftp_server.CMD_REALPATH
-paramiko.sftp_si.CMD_REALPATH" class="py-name" href="#" onclick="return doclink('link-211', 'CMD_REALPATH', 'link-211');">CMD_REALPATH</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-212', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">rpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-213', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Method paramiko.SFTPServerInterface.canonicalize()=paramiko.SFTPServerInterface-class.html#canonicalize"><a title="paramiko.SFTPServerInterface.canonicalize" class="py-name" href="#" onclick="return doclink('link-214', 'canonicalize', 'link-214');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-215" class="py-name"><a title="paramiko.sftp.CMD_NAME
+paramiko.sftp_si.CMD_REALPATH" class="py-name" href="#" onclick="return doclink('link-212', 'CMD_REALPATH', 'link-212');">CMD_REALPATH</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">path</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-213', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">rpath</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-214', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-215" class="py-name" targets="Method paramiko.SFTPServerInterface.canonicalize()=paramiko.SFTPServerInterface-class.html#canonicalize"><a title="paramiko.SFTPServerInterface.canonicalize" class="py-name" href="#" onclick="return doclink('link-215', 'canonicalize', 'link-215');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-216" class="py-name"><a title="paramiko.sftp.CMD_NAME
paramiko.sftp_attr.CMD_NAME
paramiko.sftp_client.CMD_NAME
paramiko.sftp_file.CMD_NAME
paramiko.sftp_handle.CMD_NAME
paramiko.sftp_server.CMD_NAME
-paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-215', 'CMD_NAME', 'link-94');">CMD_NAME</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">rpath</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-216" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-216', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-217" class="py-name" targets="Variable paramiko.sftp.CMD_EXTENDED=paramiko.sftp-module.html#CMD_EXTENDED,Variable paramiko.sftp_attr.CMD_EXTENDED=paramiko.sftp_attr-module.html#CMD_EXTENDED,Variable paramiko.sftp_client.CMD_EXTENDED=paramiko.sftp_client-module.html#CMD_EXTENDED,Variable paramiko.sftp_file.CMD_EXTENDED=paramiko.sftp_file-module.html#CMD_EXTENDED,Variable paramiko.sftp_handle.CMD_EXTENDED=paramiko.sftp_handle-module.html#CMD_EXTENDED,Variable paramiko.sftp_server.CMD_EXTENDED=paramiko.sftp_server-module.html#CMD_EXTENDED,Variable paramiko.sftp_si.CMD_EXTENDED=paramiko.sftp_si-module.html#CMD_EXTENDED"><a title="paramiko.sftp.CMD_EXTENDED
+paramiko.sftp_si.CMD_NAME" class="py-name" href="#" onclick="return doclink('link-216', 'CMD_NAME', 'link-94');">CMD_NAME</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">rpath</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-217" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-217', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">t</tt> <tt class="py-op">==</tt> <tt id="link-218" class="py-name" targets="Variable paramiko.sftp.CMD_EXTENDED=paramiko.sftp-module.html#CMD_EXTENDED,Variable paramiko.sftp_attr.CMD_EXTENDED=paramiko.sftp_attr-module.html#CMD_EXTENDED,Variable paramiko.sftp_client.CMD_EXTENDED=paramiko.sftp_client-module.html#CMD_EXTENDED,Variable paramiko.sftp_file.CMD_EXTENDED=paramiko.sftp_file-module.html#CMD_EXTENDED,Variable paramiko.sftp_handle.CMD_EXTENDED=paramiko.sftp_handle-module.html#CMD_EXTENDED,Variable paramiko.sftp_server.CMD_EXTENDED=paramiko.sftp_server-module.html#CMD_EXTENDED,Variable paramiko.sftp_si.CMD_EXTENDED=paramiko.sftp_si-module.html#CMD_EXTENDED"><a title="paramiko.sftp.CMD_EXTENDED
paramiko.sftp_attr.CMD_EXTENDED
paramiko.sftp_client.CMD_EXTENDED
paramiko.sftp_file.CMD_EXTENDED
paramiko.sftp_handle.CMD_EXTENDED
paramiko.sftp_server.CMD_EXTENDED
-paramiko.sftp_si.CMD_EXTENDED" class="py-name" href="#" onclick="return doclink('link-217', 'CMD_EXTENDED', 'link-217');">CMD_EXTENDED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-218', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.CMD_EXTENDED" class="py-name" href="#" onclick="return doclink('link-218', 'CMD_EXTENDED', 'link-218');">CMD_EXTENDED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-219', 'get_string', 'link-95');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt> <tt class="py-op">==</tt> <tt class="py-string">'check-file'</tt><tt class="py-op">:</tt> </tt>
<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_file</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-219" class="py-name" targets="Variable paramiko.sftp.SFTP_OP_UNSUPPORTED=paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_attr.SFTP_OP_UNSUPPORTED=paramiko.sftp_attr-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_client.SFTP_OP_UNSUPPORTED=paramiko.sftp_client-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_file.SFTP_OP_UNSUPPORTED=paramiko.sftp_file-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_handle.SFTP_OP_UNSUPPORTED=paramiko.sftp_handle-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_server.SFTP_OP_UNSUPPORTED=paramiko.sftp_server-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_si.SFTP_OP_UNSUPPORTED=paramiko.sftp_si-module.html#SFTP_OP_UNSUPPORTED"><a title="paramiko.sftp.SFTP_OP_UNSUPPORTED
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-220" class="py-name" targets="Variable paramiko.sftp.SFTP_OP_UNSUPPORTED=paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_attr.SFTP_OP_UNSUPPORTED=paramiko.sftp_attr-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_client.SFTP_OP_UNSUPPORTED=paramiko.sftp_client-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_file.SFTP_OP_UNSUPPORTED=paramiko.sftp_file-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_handle.SFTP_OP_UNSUPPORTED=paramiko.sftp_handle-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_server.SFTP_OP_UNSUPPORTED=paramiko.sftp_server-module.html#SFTP_OP_UNSUPPORTED,Variable paramiko.sftp_si.SFTP_OP_UNSUPPORTED=paramiko.sftp_si-module.html#SFTP_OP_UNSUPPORTED"><a title="paramiko.sftp.SFTP_OP_UNSUPPORTED
paramiko.sftp_attr.SFTP_OP_UNSUPPORTED
paramiko.sftp_client.SFTP_OP_UNSUPPORTED
paramiko.sftp_file.SFTP_OP_UNSUPPORTED
paramiko.sftp_handle.SFTP_OP_UNSUPPORTED
paramiko.sftp_server.SFTP_OP_UNSUPPORTED
-paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return doclink('link-219', 'SFTP_OP_UNSUPPORTED', 'link-219');">SFTP_OP_UNSUPPORTED</a></tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return doclink('link-220', 'SFTP_OP_UNSUPPORTED', 'link-220');">SFTP_OP_UNSUPPORTED</a></tt><tt class="py-op">)</tt> </tt>
<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-220" class="py-name"><a title="paramiko.sftp.SFTP_OP_UNSUPPORTED
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_status</tt><tt class="py-op">(</tt><tt class="py-name">request_number</tt><tt class="py-op">,</tt> <tt id="link-221" class="py-name"><a title="paramiko.sftp.SFTP_OP_UNSUPPORTED
paramiko.sftp_attr.SFTP_OP_UNSUPPORTED
paramiko.sftp_client.SFTP_OP_UNSUPPORTED
paramiko.sftp_file.SFTP_OP_UNSUPPORTED
paramiko.sftp_handle.SFTP_OP_UNSUPPORTED
paramiko.sftp_server.SFTP_OP_UNSUPPORTED
-paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return doclink('link-220', 'SFTP_OP_UNSUPPORTED', 'link-219');">SFTP_OP_UNSUPPORTED</a></tt><tt class="py-op">)</tt> </tt>
+paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return doclink('link-221', 'SFTP_OP_UNSUPPORTED', 'link-220');">SFTP_OP_UNSUPPORTED</a></tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> </tt>
<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-221" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-221', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name" targets="Module paramiko.sftp_handle=paramiko.sftp_handle-module.html"><a title="paramiko.sftp_handle" class="py-name" href="#" onclick="return doclink('link-222', 'sftp_handle', 'link-222');">sftp_handle</a></tt> <tt class="py-keyword">import</tt> <tt id="link-223" class="py-name"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-223', 'SFTPHandle', 'link-81');">SFTPHandle</a></tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-222" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-222', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name" targets="Module paramiko.sftp_handle=paramiko.sftp_handle-module.html"><a title="paramiko.sftp_handle" class="py-name" href="#" onclick="return doclink('link-223', 'sftp_handle', 'link-223');">sftp_handle</a></tt> <tt class="py-keyword">import</tt> <tt id="link-224" class="py-name"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-224', 'SFTPHandle', 'link-81');">SFTPHandle</a></tt> </tt>
<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -1174,7 +1176,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:37 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:21 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_si-module.html b/docs/paramiko.sftp_si-module.html
index 4907504..f6cd90d 100644
--- a/docs/paramiko.sftp_si-module.html
+++ b/docs/paramiko.sftp_si-module.html
@@ -741,6 +741,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -880,7 +887,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.sftp_si-pysrc.html b/docs/paramiko.sftp_si-pysrc.html
index d28e3f1..8c33f30 100644
--- a/docs/paramiko.sftp_si-pysrc.html
+++ b/docs/paramiko.sftp_si-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.sftp_si-module.html" onclick="show_private();">Module paramiko.sftp_si</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{SFTPServerInterface} is an interface to override for SFTP server support.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -106,7 +106,7 @@
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> SFTP subsystem</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> @type server: L{ServerInterface}</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Class paramiko.SFTPServerInterface=paramiko.SFTPServerInterface-class.html"><a title="paramiko.SFTPServerInterface" class="py-name" href="#" onclick="return doclink('link-4', 'SFTPServerInterface', 'link-4');">SFTPServerInterface</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Class paramiko.SFTPServerInterface=paramiko.SFTPServerInterface-class.html"><a title="paramiko.SFTPServerInterface" class="py-name" href="#" onclick="return doclink('link-4', 'SFTPServerInterface', 'link-4');">SFTPServerInterface</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -147,6 +147,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-5', '__init__', 'link-5');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">largs</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
</div><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
@@ -428,7 +429,7 @@ paramiko.sftp_si.SFTP_OP_UNSUPPORTED" class="py-name" href="#" onclick="return d
<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">normpath</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">path</tt><tt class="py-op">)</tt> </tt>
<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">==</tt> <tt class="py-string">'win32'</tt><tt class="py-op">:</tt> </tt>
<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-comment"># on windows, normalize backslashes to sftp/posix format</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\\'</tt><tt class="py-op">,</tt> <tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
</div><a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </tt>
<a name="SFTPServerInterface.readlink"></a><div id="SFTPServerInterface.readlink-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.readlink-toggle" onclick="return toggle('SFTPServerInterface.readlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#readlink">readlink</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -505,7 +506,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:33 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ssh_exception-module.html b/docs/paramiko.ssh_exception-module.html
index b679a41..44b2d9a 100644
--- a/docs/paramiko.ssh_exception-module.html
+++ b/docs/paramiko.ssh_exception-module.html
@@ -73,6 +73,22 @@
</td>
</tr>
</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
@@ -99,7 +115,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ssh_exception-pysrc.html b/docs/paramiko.ssh_exception-pysrc.html
index e140015..fe82bfe 100644
--- a/docs/paramiko.ssh_exception-pysrc.html
+++ b/docs/paramiko.ssh_exception-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.ssh_exception-module.html" onclick="show_private();">Module paramiko.ssh_exception</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Exceptions defined by paramiko.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -119,7 +119,7 @@
paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-0', 'allowed_types', 'link-0');">allowed_types</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
<a name="BadAuthenticationType.__init__"></a><div id="BadAuthenticationType.__init__-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="BadAuthenticationType.__init__-toggle" onclick="return toggle('BadAuthenticationType.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ssh_exception.BadAuthenticationType-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">explanation</tt><tt class="py-op">,</tt> <tt class="py-param">types</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BadAuthenticationType.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BadAuthenticationType.__init__-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt id="link-1" class="py-name" targets="Class paramiko.AuthenticationException=paramiko.AuthenticationException-class.html"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-1', 'AuthenticationException', 'link-1');">AuthenticationException</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+</div><div id="BadAuthenticationType.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BadAuthenticationType.__init__-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt id="link-1" class="py-name" targets="Class paramiko.AuthenticationException=paramiko.AuthenticationException-class.html"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-1', 'AuthenticationException', 'link-1');">AuthenticationException</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -160,6 +160,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-2', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">explanation</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="paramiko.BadAuthenticationType.allowed_types
@@ -226,6 +227,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-9', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'partial authentication'</tt><tt class="py-op">)</tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="paramiko.BadAuthenticationType.allowed_types
@@ -283,6 +285,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-12', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt> </tt>
@@ -343,6 +346,7 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-14', '__init__', 'link-2');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'Host key for server %s does not match!'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
@@ -381,7 +385,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:36 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.ssh_exception.PartialAuthentication-class.html b/docs/paramiko.ssh_exception.PartialAuthentication-class.html
index 5f7d526..66e4bcc 100644
--- a/docs/paramiko.ssh_exception.PartialAuthentication-class.html
+++ b/docs/paramiko.ssh_exception.PartialAuthentication-class.html
@@ -108,15 +108,20 @@ exceptions.BaseException --+
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__getitem__</code>,
+ <code>__getslice__</code>,
<code>__reduce__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
<code>__setstate__</code>,
- <code>__str__</code>
+ <code>__str__</code>,
+ <code>__unicode__</code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
<code>__hash__</code>,
- <code>__reduce_ex__</code>
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -219,7 +224,7 @@ exceptions.BaseException --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.transport-module.html b/docs/paramiko.transport-module.html
index 9c93b3c..0a3c3ce 100644
--- a/docs/paramiko.transport-module.html
+++ b/docs/paramiko.transport-module.html
@@ -432,6 +432,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -519,7 +526,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.transport-pysrc.html b/docs/paramiko.transport-pysrc.html
index f0d6fb1..0a560e0 100644
--- a/docs/paramiko.transport-pysrc.html
+++ b/docs/paramiko.transport-pysrc.html
@@ -54,24 +54,24 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.transport-module.html" onclick="show_private();">Module paramiko.transport</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">L{Transport} handles the core SSH2 protocol.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -102,244 +102,260 @@
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-40" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-40', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Module paramiko.ssh_exception=paramiko.ssh_exception-module.html"><a title="paramiko.ssh_exception" class="py-name" href="#" onclick="return doclink('link-41', 'ssh_exception', 'link-41');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-42" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-42', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">,</tt> <tt id="link-43" class="py-name" targets="Class paramiko.BadAuthenticationType=paramiko.BadAuthenticationType-class.html"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-43', 'BadAuthenticationType', 'link-43');">BadAuthenticationType</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name" targets="Class paramiko.ChannelException=paramiko.ChannelException-class.html"><a title="paramiko.ChannelException" class="py-name" href="#" onclick="return doclink('link-44', 'ChannelException', 'link-44');">ChannelException</a></tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-comment"># these come from PyCrypt</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># http://www.amk.ca/python/writing/pycrypt/</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># i believe this on the standards track.</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># PyCrypt compiled for Win32 can be downloaded from the HashTar homepage:</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># http://nitace.bsd.uchicago.edu:8080/hashtar</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Cipher</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">,</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-name">DES3</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-comment"># http://www.amk.ca/python/writing/pycrypt/</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment"># i believe this on the standards track.</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-comment"># PyCrypt compiled for Win32 can be downloaded from the HashTar homepage:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"># http://nitace.bsd.uchicago.edu:8080/hashtar</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Cipher</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">,</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-name">DES3</tt><tt class="py-op">,</tt> <tt class="py-name">ARC4</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Hash</tt> <tt class="py-keyword">import</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> <tt class="py-name">MD5</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"># for thread cleanup</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-45" class="py-name" targets="Variable paramiko.transport._active_threads=paramiko.transport-module.html#_active_threads"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-45', '_active_threads', 'link-45');">_active_threads</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="_join_lingering_threads"></a><div id="_join_lingering_threads-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="_join_lingering_threads-toggle" onclick="return toggle('_join_lingering_threads');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport-module.html#_join_lingering_threads">_join_lingering_threads</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_join_lingering_threads-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_join_lingering_threads-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">thr</tt> <tt class="py-keyword">in</tt> <tt id="link-46" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-46', '_active_threads', 'link-45');">_active_threads</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">thr</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method paramiko.Transport.stop_thread()=paramiko.Transport-class.html#stop_thread"><a title="paramiko.Transport.stop_thread" class="py-name" href="#" onclick="return doclink('link-47', 'stop_thread', 'link-47');">stop_thread</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">atexit</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-name">atexit</tt><tt class="py-op">.</tt><tt class="py-name">register</tt><tt class="py-op">(</tt><tt class="py-name">_join_lingering_threads</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions"></a><div id="SecurityOptions-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="SecurityOptions-toggle" onclick="return toggle('SecurityOptions');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html">SecurityOptions</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SecurityOptions-expanded"><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> Simple object containing the security preferences of an ssh transport.</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> These are tuples of acceptable ciphers, digests, key types, and key</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> exchange algorithms, listed in order of preference.</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> Changing the contents and/or order of these fields affects the underlying</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport} (but only if you change them before starting the session).</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> If you try to add an algorithm that paramiko doesn't recognize,</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> C{ValueError} will be raised. If you try to assign something besides a</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> tuple to one of the fields, C{TypeError} will be raised.</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">__slots__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'ciphers'</tt><tt class="py-op">,</tt> <tt class="py-string">'digests'</tt><tt class="py-op">,</tt> <tt class="py-string">'key_types'</tt><tt class="py-op">,</tt> <tt class="py-string">'kex'</tt><tt class="py-op">,</tt> <tt class="py-string">'compression'</tt><tt class="py-op">,</tt> <tt class="py-string">'_transport'</tt> <tt class="py-op">]</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions.__init__"></a><div id="SecurityOptions.__init__-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="SecurityOptions.__init__-toggle" onclick="return toggle('SecurityOptions.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">transport</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions.__init__-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-48', 'transport', 'link-48');">transport</a></tt> </tt>
-</div><a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions.__repr__"></a><div id="SecurityOptions.__repr__-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="SecurityOptions.__repr__-toggle" onclick="return toggle('SecurityOptions.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions.__repr__-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;paramiko.SecurityOptions for %s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._get_ciphers"></a><div id="SecurityOptions._get_ciphers-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_ciphers-toggle" onclick="return toggle('SecurityOptions._get_ciphers');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_ciphers">_get_ciphers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._get_ciphers-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_ciphers-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Variable paramiko.Transport._preferred_ciphers=paramiko.Transport-class.html#_preferred_ciphers"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-49', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt> </tt>
-</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._get_digests"></a><div id="SecurityOptions._get_digests-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_digests-toggle" onclick="return toggle('SecurityOptions._get_digests');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_digests">_get_digests</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._get_digests-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_digests-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Variable paramiko.Transport._preferred_macs=paramiko.Transport-class.html#_preferred_macs"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-50', '_preferred_macs', 'link-50');">_preferred_macs</a></tt> </tt>
-</div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._get_key_types"></a><div id="SecurityOptions._get_key_types-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_key_types-toggle" onclick="return toggle('SecurityOptions._get_key_types');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_key_types">_get_key_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._get_key_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_key_types-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Variable paramiko.Transport._preferred_keys=paramiko.Transport-class.html#_preferred_keys"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-51', '_preferred_keys', 'link-51');">_preferred_keys</a></tt> </tt>
-</div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._get_kex"></a><div id="SecurityOptions._get_kex-def"><a name="L100"></a><tt class="py-lineno"> 100</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_kex-toggle" onclick="return toggle('SecurityOptions._get_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_kex">_get_kex</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._get_kex-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_kex-expanded"><a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Variable paramiko.Transport._preferred_kex=paramiko.Transport-class.html#_preferred_kex"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-52', '_preferred_kex', 'link-52');">_preferred_kex</a></tt> </tt>
-</div><a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._get_compression"></a><div id="SecurityOptions._get_compression-def"><a name="L103"></a><tt class="py-lineno"> 103</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_compression-toggle" onclick="return toggle('SecurityOptions._get_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_compression">_get_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._get_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_compression-expanded"><a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Variable paramiko.Transport._preferred_compression=paramiko.Transport-class.html#_preferred_compression"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-53', '_preferred_compression', 'link-53');">_preferred_compression</a></tt> </tt>
-</div><a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set"></a><div id="SecurityOptions._set-def"><a name="L106"></a><tt class="py-lineno"> 106</tt> <a class="py-toggle" href="#" id="SecurityOptions._set-toggle" onclick="return toggle('SecurityOptions._set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set">_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">orig</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set-expanded"><a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
-<a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'expected tuple or list'</tt><tt class="py-op">)</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-name">possible</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">,</tt> <tt class="py-name">orig</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-54', 'keys', 'link-54');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-name">forbidden</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Method paramiko.util.PFilter.filter()=paramiko.util.PFilter-class.html#filter"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-55', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">n</tt><tt class="py-op">:</tt> <tt class="py-name">n</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">possible</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">forbidden</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">'unknown cipher'</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">,</tt> <tt id="link-56" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-56', 'name', 'link-56');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set_ciphers"></a><div id="SecurityOptions._set_ciphers-def"><a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_ciphers-toggle" onclick="return toggle('SecurityOptions._set_ciphers');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_ciphers">_set_ciphers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set_ciphers-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_ciphers-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_ciphers'</tt><tt class="py-op">,</tt> <tt class="py-string">'_cipher_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set_digests"></a><div id="SecurityOptions._set_digests-def"><a name="L120"></a><tt class="py-lineno"> 120</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_digests-toggle" onclick="return toggle('SecurityOptions._set_digests');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_digests">_set_digests</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set_digests-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_digests-expanded"><a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_macs'</tt><tt class="py-op">,</tt> <tt class="py-string">'_mac_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set_key_types"></a><div id="SecurityOptions._set_key_types-def"><a name="L123"></a><tt class="py-lineno"> 123</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_key_types-toggle" onclick="return toggle('SecurityOptions._set_key_types');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_key_types">_set_key_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set_key_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_key_types-expanded"><a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_keys'</tt><tt class="py-op">,</tt> <tt class="py-string">'_key_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set_kex"></a><div id="SecurityOptions._set_kex-def"><a name="L126"></a><tt class="py-lineno"> 126</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_kex-toggle" onclick="return toggle('SecurityOptions._set_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_kex">_set_kex</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set_kex-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_kex-expanded"><a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_kex'</tt><tt class="py-op">,</tt> <tt class="py-string">'_kex_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"> </tt>
-<a name="SecurityOptions._set_compression"></a><div id="SecurityOptions._set_compression-def"><a name="L129"></a><tt class="py-lineno"> 129</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_compression-toggle" onclick="return toggle('SecurityOptions._set_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_compression">_set_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SecurityOptions._set_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_compression-expanded"><a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_compression'</tt><tt class="py-op">,</tt> <tt class="py-string">'_compression_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"> <tt id="link-57" class="py-name" targets="Variable paramiko.SecurityOptions.ciphers=paramiko.SecurityOptions-class.html#ciphers"><a title="paramiko.SecurityOptions.ciphers" class="py-name" href="#" onclick="return doclink('link-57', 'ciphers', 'link-57');">ciphers</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name" targets="Method paramiko.SecurityOptions._get_ciphers()=paramiko.SecurityOptions-class.html#_get_ciphers"><a title="paramiko.SecurityOptions._get_ciphers" class="py-name" href="#" onclick="return doclink('link-58', '_get_ciphers', 'link-58');">_get_ciphers</a></tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name" targets="Method paramiko.SecurityOptions._set_ciphers()=paramiko.SecurityOptions-class.html#_set_ciphers"><a title="paramiko.SecurityOptions._set_ciphers" class="py-name" href="#" onclick="return doclink('link-59', '_set_ciphers', 'link-59');">_set_ciphers</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"> <tt class="py-string">"Symmetric encryption ciphers"</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"> <tt id="link-60" class="py-name" targets="Variable paramiko.SecurityOptions.digests=paramiko.SecurityOptions-class.html#digests"><a title="paramiko.SecurityOptions.digests" class="py-name" href="#" onclick="return doclink('link-60', 'digests', 'link-60');">digests</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-61" class="py-name" targets="Method paramiko.SecurityOptions._get_digests()=paramiko.SecurityOptions-class.html#_get_digests"><a title="paramiko.SecurityOptions._get_digests" class="py-name" href="#" onclick="return doclink('link-61', '_get_digests', 'link-61');">_get_digests</a></tt><tt class="py-op">,</tt> <tt id="link-62" class="py-name" targets="Method paramiko.SecurityOptions._set_digests()=paramiko.SecurityOptions-class.html#_set_digests"><a title="paramiko.SecurityOptions._set_digests" class="py-name" href="#" onclick="return doclink('link-62', '_set_digests', 'link-62');">_set_digests</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"> <tt class="py-string">"Digest (one-way hash) algorithms"</tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"> <tt id="link-63" class="py-name" targets="Variable paramiko.SecurityOptions.key_types=paramiko.SecurityOptions-class.html#key_types"><a title="paramiko.SecurityOptions.key_types" class="py-name" href="#" onclick="return doclink('link-63', 'key_types', 'link-63');">key_types</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name" targets="Method paramiko.SecurityOptions._get_key_types()=paramiko.SecurityOptions-class.html#_get_key_types"><a title="paramiko.SecurityOptions._get_key_types" class="py-name" href="#" onclick="return doclink('link-64', '_get_key_types', 'link-64');">_get_key_types</a></tt><tt class="py-op">,</tt> <tt id="link-65" class="py-name" targets="Method paramiko.SecurityOptions._set_key_types()=paramiko.SecurityOptions-class.html#_set_key_types"><a title="paramiko.SecurityOptions._set_key_types" class="py-name" href="#" onclick="return doclink('link-65', '_set_key_types', 'link-65');">_set_key_types</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"> <tt class="py-string">"Public-key algorithms"</tt><tt class="py-op">)</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"> <tt id="link-66" class="py-name" targets="Variable paramiko.SecurityOptions.kex=paramiko.SecurityOptions-class.html#kex"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-66', 'kex', 'link-66');">kex</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-67" class="py-name" targets="Method paramiko.SecurityOptions._get_kex()=paramiko.SecurityOptions-class.html#_get_kex"><a title="paramiko.SecurityOptions._get_kex" class="py-name" href="#" onclick="return doclink('link-67', '_get_kex', 'link-67');">_get_kex</a></tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name" targets="Method paramiko.SecurityOptions._set_kex()=paramiko.SecurityOptions-class.html#_set_kex"><a title="paramiko.SecurityOptions._set_kex" class="py-name" href="#" onclick="return doclink('link-68', '_set_kex', 'link-68');">_set_kex</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"Key exchange algorithms"</tt><tt class="py-op">)</tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"> <tt id="link-69" class="py-name" targets="Variable paramiko.SecurityOptions.compression=paramiko.SecurityOptions-class.html#compression"><a title="paramiko.SecurityOptions.compression" class="py-name" href="#" onclick="return doclink('link-69', 'compression', 'link-69');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name" targets="Method paramiko.SecurityOptions._get_compression()=paramiko.SecurityOptions-class.html#_get_compression"><a title="paramiko.SecurityOptions._get_compression" class="py-name" href="#" onclick="return doclink('link-70', '_get_compression', 'link-70');">_get_compression</a></tt><tt class="py-op">,</tt> <tt id="link-71" class="py-name" targets="Method paramiko.SecurityOptions._set_compression()=paramiko.SecurityOptions-class.html#_set_compression"><a title="paramiko.SecurityOptions._set_compression" class="py-name" href="#" onclick="return doclink('link-71', '_set_compression', 'link-71');">_set_compression</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"> <tt class="py-string">"Compression algorithms"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap"></a><div id="ChannelMap-def"><a name="L143"></a><tt class="py-lineno"> 143</tt> <a class="py-toggle" href="#" id="ChannelMap-toggle" onclick="return toggle('ChannelMap');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html">ChannelMap</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelMap-expanded"><a name="ChannelMap.__init__"></a><div id="ChannelMap.__init__-def"><a name="L144"></a><tt class="py-lineno"> 144</tt> <a class="py-toggle" href="#" id="ChannelMap.__init__-toggle" onclick="return toggle('ChannelMap.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.__init__-expanded"><a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"> <tt class="py-comment"># (id -&gt; Channel)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">WeakValueDictionary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap.put"></a><div id="ChannelMap.put-def"><a name="L149"></a><tt class="py-lineno"> 149</tt> <a class="py-toggle" href="#" id="ChannelMap.put-toggle" onclick="return toggle('ChannelMap.put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#put">put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">,</tt> <tt class="py-param">chan</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.put-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.put-expanded"><a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt> </tt>
-<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap.get"></a><div id="ChannelMap.get-def"><a name="L156"></a><tt class="py-lineno"> 156</tt> <a class="py-toggle" href="#" id="ChannelMap.get-toggle" onclick="return toggle('ChannelMap.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.get-expanded"><a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-72', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap.delete"></a><div id="ChannelMap.delete-def"><a name="L163"></a><tt class="py-lineno"> 163</tt> <a class="py-toggle" href="#" id="ChannelMap.delete-toggle" onclick="return toggle('ChannelMap.delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#delete">delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.delete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.delete-expanded"><a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap.values"></a><div id="ChannelMap.values-def"><a name="L173"></a><tt class="py-lineno"> 173</tt> <a class="py-toggle" href="#" id="ChannelMap.values-toggle" onclick="return toggle('ChannelMap.values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#values">values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.values-expanded"><a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
-paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-73', 'values', 'link-73');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> </tt>
-<a name="ChannelMap.__len__"></a><div id="ChannelMap.__len__-def"><a name="L180"></a><tt class="py-lineno"> 180</tt> <a class="py-toggle" href="#" id="ChannelMap.__len__-toggle" onclick="return toggle('ChannelMap.__len__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ChannelMap.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.__len__-expanded"><a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">)</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"> </tt>
-<a name="Transport"></a><div id="Transport-def"><a name="L188"></a><tt class="py-lineno"> 188</tt> <a class="py-toggle" href="#" id="Transport-toggle" onclick="return toggle('Transport');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html">Transport</a> <tt class="py-op">(</tt><tt class="py-base-class">threading</tt><tt class="py-op">.</tt><tt class="py-base-class">Thread</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Transport-expanded"><a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> An SSH Transport attaches to a stream (usually a socket), negotiates an</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-docstring"> encrypted session, authenticates, and then creates stream tunnels, called</tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}s, across the session. Multiple channels can be multiplexed</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> across a single session (and often are, in the case of port forwardings).</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"> <tt id="link-74" class="py-name" targets="Variable paramiko.Transport._PROTO_ID=paramiko.Transport-class.html#_PROTO_ID"><a title="paramiko.Transport._PROTO_ID" class="py-name" href="#" onclick="return doclink('link-74', '_PROTO_ID', 'link-74');">_PROTO_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'2.0'</tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"> <tt id="link-75" class="py-name" targets="Variable paramiko.Transport._CLIENT_ID=paramiko.Transport-class.html#_CLIENT_ID"><a title="paramiko.Transport._CLIENT_ID" class="py-name" href="#" onclick="return doclink('link-75', '_CLIENT_ID', 'link-75');">_CLIENT_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'paramiko_1.7.4'</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-76', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'aes128-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'blowfish-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'aes256-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'3des-cbc'</tt> <tt class="py-op">)</tt> </tt>
-<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-77', '_preferred_macs', 'link-50');">_preferred_macs</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'hmac-sha1'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-md5'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-sha1-96'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-md5-96'</tt> <tt class="py-op">)</tt> </tt>
-<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-78', '_preferred_keys', 'link-51');">_preferred_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">,</tt> <tt class="py-string">'ssh-dss'</tt> <tt class="py-op">)</tt> </tt>
-<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-79', '_preferred_kex', 'link-52');">_preferred_kex</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'diffie-hellman-group1-sha1'</tt><tt class="py-op">,</tt> <tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt> <tt class="py-op">)</tt> </tt>
-<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-80', '_preferred_compression', 'link-53');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'none'</tt><tt class="py-op">,</tt> <tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt id="link-81" class="py-name" targets="Variable paramiko.Transport._cipher_info=paramiko.Transport-class.html#_cipher_info"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-81', '_cipher_info', 'link-81');">_cipher_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt class="py-string">'blowfish-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt class="py-string">'aes128-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-string">'aes256-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">32</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> <tt class="py-string">'3des-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">24</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> </tt>
-<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> <tt id="link-82" class="py-name" targets="Variable paramiko.Transport._mac_info=paramiko.Transport-class.html#_mac_info"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-82', '_mac_info', 'link-82');">_mac_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-string">'hmac-sha1'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">20</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> <tt class="py-string">'hmac-sha1-96'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">12</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> <tt class="py-string">'hmac-md5'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> <tt class="py-string">'hmac-md5-96'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">12</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"> <tt id="link-83" class="py-name" targets="Variable paramiko.Transport._key_info=paramiko.Transport-class.html#_key_info"><a title="paramiko.Transport._key_info" class="py-name" href="#" onclick="return doclink('link-83', '_key_info', 'link-83');">_key_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> <tt id="link-84" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-84', 'RSAKey', 'link-33');">RSAKey</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"> <tt class="py-string">'ssh-dss'</tt><tt class="py-op">:</tt> <tt id="link-85" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-85', 'DSSKey', 'link-15');">DSSKey</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"> <tt id="link-86" class="py-name" targets="Variable paramiko.Transport._kex_info=paramiko.Transport-class.html#_kex_info"><a title="paramiko.Transport._kex_info" class="py-name" href="#" onclick="return doclink('link-86', '_kex_info', 'link-86');">_kex_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"> <tt class="py-string">'diffie-hellman-group1-sha1'</tt><tt class="py-op">:</tt> <tt id="link-87" class="py-name"><a title="paramiko.kex_group1.KexGroup1" class="py-name" href="#" onclick="return doclink('link-87', 'KexGroup1', 'link-21');">KexGroup1</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"> <tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt><tt class="py-op">:</tt> <tt id="link-88" class="py-name"><a title="paramiko.kex_gex.KexGex" class="py-name" href="#" onclick="return doclink('link-88', 'KexGex', 'link-18');">KexGex</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> <tt id="link-89" class="py-name" targets="Variable paramiko.Transport._compression_info=paramiko.Transport-class.html#_compression_info"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-89', '_compression_info', 'link-89');">_compression_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt class="py-comment"># zlib@openssh.com is just zlib, but only turned on after a successful</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-comment"># authentication. openssh servers may only offer this type because</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> <tt class="py-comment"># they've had troubles with security holes in zlib in the past.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt id="link-90" class="py-name"><a title="paramiko.compress.ZlibCompressor" class="py-name" href="#" onclick="return doclink('link-90', 'ZlibCompressor', 'link-11');">ZlibCompressor</a></tt><tt class="py-op">,</tt> <tt id="link-91" class="py-name"><a title="paramiko.compress.ZlibDecompressor" class="py-name" href="#" onclick="return doclink('link-91', 'ZlibDecompressor', 'link-12');">ZlibDecompressor</a></tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-string">'zlib'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt id="link-92" class="py-name"><a title="paramiko.compress.ZlibCompressor" class="py-name" href="#" onclick="return doclink('link-92', 'ZlibCompressor', 'link-11');">ZlibCompressor</a></tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name"><a title="paramiko.compress.ZlibDecompressor" class="py-name" href="#" onclick="return doclink('link-93', 'ZlibDecompressor', 'link-12');">ZlibDecompressor</a></tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-string">'none'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Util</tt> <tt class="py-keyword">import</tt> <tt id="link-45" class="py-name" targets="Class paramiko.util.Counter=paramiko.util.Counter-class.html"><a title="paramiko.util.Counter" class="py-name" href="#" onclick="return doclink('link-45', 'Counter', 'link-45');">Counter</a></tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-46" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-46', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-47', 'util', 'link-1');">util</a></tt> <tt class="py-keyword">import</tt> <tt id="link-48" class="py-name"><a title="paramiko.util.Counter" class="py-name" href="#" onclick="return doclink('link-48', 'Counter', 'link-45');">Counter</a></tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-comment"># for thread cleanup</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-49" class="py-name" targets="Variable paramiko.transport._active_threads=paramiko.transport-module.html#_active_threads"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-49', '_active_threads', 'link-49');">_active_threads</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="_join_lingering_threads"></a><div id="_join_lingering_threads-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="_join_lingering_threads-toggle" onclick="return toggle('_join_lingering_threads');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport-module.html#_join_lingering_threads">_join_lingering_threads</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_join_lingering_threads-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_join_lingering_threads-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">thr</tt> <tt class="py-keyword">in</tt> <tt id="link-50" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-50', '_active_threads', 'link-49');">_active_threads</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">thr</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method paramiko.Transport.stop_thread()=paramiko.Transport-class.html#stop_thread"><a title="paramiko.Transport.stop_thread" class="py-name" href="#" onclick="return doclink('link-51', 'stop_thread', 'link-51');">stop_thread</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">atexit</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-name">atexit</tt><tt class="py-op">.</tt><tt class="py-name">register</tt><tt class="py-op">(</tt><tt class="py-name">_join_lingering_threads</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions"></a><div id="SecurityOptions-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="SecurityOptions-toggle" onclick="return toggle('SecurityOptions');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html">SecurityOptions</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SecurityOptions-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> Simple object containing the security preferences of an ssh transport.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> These are tuples of acceptable ciphers, digests, key types, and key</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> exchange algorithms, listed in order of preference.</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> Changing the contents and/or order of these fields affects the underlying</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport} (but only if you change them before starting the session).</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> If you try to add an algorithm that paramiko doesn't recognize,</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> C{ValueError} will be raised. If you try to assign something besides a</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> tuple to one of the fields, C{TypeError} will be raised.</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">__slots__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'ciphers'</tt><tt class="py-op">,</tt> <tt class="py-string">'digests'</tt><tt class="py-op">,</tt> <tt class="py-string">'key_types'</tt><tt class="py-op">,</tt> <tt class="py-string">'kex'</tt><tt class="py-op">,</tt> <tt class="py-string">'compression'</tt><tt class="py-op">,</tt> <tt class="py-string">'_transport'</tt> <tt class="py-op">]</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions.__init__"></a><div id="SecurityOptions.__init__-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="SecurityOptions.__init__-toggle" onclick="return toggle('SecurityOptions.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">transport</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions.__init__-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-52', 'transport', 'link-52');">transport</a></tt> </tt>
+</div><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions.__repr__"></a><div id="SecurityOptions.__repr__-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="SecurityOptions.__repr__-toggle" onclick="return toggle('SecurityOptions.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions.__repr__-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;paramiko.SecurityOptions for %s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._get_ciphers"></a><div id="SecurityOptions._get_ciphers-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_ciphers-toggle" onclick="return toggle('SecurityOptions._get_ciphers');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_ciphers">_get_ciphers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._get_ciphers-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_ciphers-expanded"><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Variable paramiko.Transport._preferred_ciphers=paramiko.Transport-class.html#_preferred_ciphers"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-53', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt> </tt>
+</div><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._get_digests"></a><div id="SecurityOptions._get_digests-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_digests-toggle" onclick="return toggle('SecurityOptions._get_digests');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_digests">_get_digests</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._get_digests-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_digests-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Variable paramiko.Transport._preferred_macs=paramiko.Transport-class.html#_preferred_macs"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-54', '_preferred_macs', 'link-54');">_preferred_macs</a></tt> </tt>
+</div><a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._get_key_types"></a><div id="SecurityOptions._get_key_types-def"><a name="L101"></a><tt class="py-lineno"> 101</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_key_types-toggle" onclick="return toggle('SecurityOptions._get_key_types');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_key_types">_get_key_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._get_key_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_key_types-expanded"><a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Variable paramiko.Transport._preferred_keys=paramiko.Transport-class.html#_preferred_keys"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-55', '_preferred_keys', 'link-55');">_preferred_keys</a></tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._get_kex"></a><div id="SecurityOptions._get_kex-def"><a name="L104"></a><tt class="py-lineno"> 104</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_kex-toggle" onclick="return toggle('SecurityOptions._get_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_kex">_get_kex</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._get_kex-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_kex-expanded"><a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Variable paramiko.Transport._preferred_kex=paramiko.Transport-class.html#_preferred_kex"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-56', '_preferred_kex', 'link-56');">_preferred_kex</a></tt> </tt>
+</div><a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._get_compression"></a><div id="SecurityOptions._get_compression-def"><a name="L107"></a><tt class="py-lineno"> 107</tt> <a class="py-toggle" href="#" id="SecurityOptions._get_compression-toggle" onclick="return toggle('SecurityOptions._get_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_get_compression">_get_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._get_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._get_compression-expanded"><a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Variable paramiko.Transport._preferred_compression=paramiko.Transport-class.html#_preferred_compression"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-57', '_preferred_compression', 'link-57');">_preferred_compression</a></tt> </tt>
+</div><a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set"></a><div id="SecurityOptions._set-def"><a name="L110"></a><tt class="py-lineno"> 110</tt> <a class="py-toggle" href="#" id="SecurityOptions._set-toggle" onclick="return toggle('SecurityOptions._set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set">_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">orig</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set-expanded"><a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'expected tuple or list'</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> <tt class="py-name">possible</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">,</tt> <tt class="py-name">orig</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method paramiko.HostKeys.keys()=paramiko.HostKeys-class.html#keys"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-58', 'keys', 'link-58');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> <tt class="py-name">forbidden</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name" targets="Method paramiko.util.PFilter.filter()=paramiko.util.PFilter-class.html#filter"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-59', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">n</tt><tt class="py-op">:</tt> <tt class="py-name">n</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">possible</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">forbidden</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">'unknown cipher'</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_transport</tt><tt class="py-op">,</tt> <tt id="link-60" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-60', 'name', 'link-60');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set_ciphers"></a><div id="SecurityOptions._set_ciphers-def"><a name="L121"></a><tt class="py-lineno"> 121</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_ciphers-toggle" onclick="return toggle('SecurityOptions._set_ciphers');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_ciphers">_set_ciphers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set_ciphers-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_ciphers-expanded"><a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_ciphers'</tt><tt class="py-op">,</tt> <tt class="py-string">'_cipher_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set_digests"></a><div id="SecurityOptions._set_digests-def"><a name="L124"></a><tt class="py-lineno"> 124</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_digests-toggle" onclick="return toggle('SecurityOptions._set_digests');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_digests">_set_digests</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set_digests-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_digests-expanded"><a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_macs'</tt><tt class="py-op">,</tt> <tt class="py-string">'_mac_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set_key_types"></a><div id="SecurityOptions._set_key_types-def"><a name="L127"></a><tt class="py-lineno"> 127</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_key_types-toggle" onclick="return toggle('SecurityOptions._set_key_types');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_key_types">_set_key_types</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set_key_types-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_key_types-expanded"><a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_keys'</tt><tt class="py-op">,</tt> <tt class="py-string">'_key_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set_kex"></a><div id="SecurityOptions._set_kex-def"><a name="L130"></a><tt class="py-lineno"> 130</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_kex-toggle" onclick="return toggle('SecurityOptions._set_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_kex">_set_kex</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set_kex-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_kex-expanded"><a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_kex'</tt><tt class="py-op">,</tt> <tt class="py-string">'_kex_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"> </tt>
+<a name="SecurityOptions._set_compression"></a><div id="SecurityOptions._set_compression-def"><a name="L133"></a><tt class="py-lineno"> 133</tt> <a class="py-toggle" href="#" id="SecurityOptions._set_compression-toggle" onclick="return toggle('SecurityOptions._set_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.SecurityOptions-class.html#_set_compression">_set_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SecurityOptions._set_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="SecurityOptions._set_compression-expanded"><a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">(</tt><tt class="py-string">'_preferred_compression'</tt><tt class="py-op">,</tt> <tt class="py-string">'_compression_info'</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"> <tt id="link-61" class="py-name" targets="Variable paramiko.SecurityOptions.ciphers=paramiko.SecurityOptions-class.html#ciphers"><a title="paramiko.SecurityOptions.ciphers" class="py-name" href="#" onclick="return doclink('link-61', 'ciphers', 'link-61');">ciphers</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-62" class="py-name" targets="Method paramiko.SecurityOptions._get_ciphers()=paramiko.SecurityOptions-class.html#_get_ciphers"><a title="paramiko.SecurityOptions._get_ciphers" class="py-name" href="#" onclick="return doclink('link-62', '_get_ciphers', 'link-62');">_get_ciphers</a></tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name" targets="Method paramiko.SecurityOptions._set_ciphers()=paramiko.SecurityOptions-class.html#_set_ciphers"><a title="paramiko.SecurityOptions._set_ciphers" class="py-name" href="#" onclick="return doclink('link-63', '_set_ciphers', 'link-63');">_set_ciphers</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"> <tt class="py-string">"Symmetric encryption ciphers"</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"> <tt id="link-64" class="py-name" targets="Variable paramiko.SecurityOptions.digests=paramiko.SecurityOptions-class.html#digests"><a title="paramiko.SecurityOptions.digests" class="py-name" href="#" onclick="return doclink('link-64', 'digests', 'link-64');">digests</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-65" class="py-name" targets="Method paramiko.SecurityOptions._get_digests()=paramiko.SecurityOptions-class.html#_get_digests"><a title="paramiko.SecurityOptions._get_digests" class="py-name" href="#" onclick="return doclink('link-65', '_get_digests', 'link-65');">_get_digests</a></tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name" targets="Method paramiko.SecurityOptions._set_digests()=paramiko.SecurityOptions-class.html#_set_digests"><a title="paramiko.SecurityOptions._set_digests" class="py-name" href="#" onclick="return doclink('link-66', '_set_digests', 'link-66');">_set_digests</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"> <tt class="py-string">"Digest (one-way hash) algorithms"</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"> <tt id="link-67" class="py-name" targets="Variable paramiko.SecurityOptions.key_types=paramiko.SecurityOptions-class.html#key_types"><a title="paramiko.SecurityOptions.key_types" class="py-name" href="#" onclick="return doclink('link-67', 'key_types', 'link-67');">key_types</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-68" class="py-name" targets="Method paramiko.SecurityOptions._get_key_types()=paramiko.SecurityOptions-class.html#_get_key_types"><a title="paramiko.SecurityOptions._get_key_types" class="py-name" href="#" onclick="return doclink('link-68', '_get_key_types', 'link-68');">_get_key_types</a></tt><tt class="py-op">,</tt> <tt id="link-69" class="py-name" targets="Method paramiko.SecurityOptions._set_key_types()=paramiko.SecurityOptions-class.html#_set_key_types"><a title="paramiko.SecurityOptions._set_key_types" class="py-name" href="#" onclick="return doclink('link-69', '_set_key_types', 'link-69');">_set_key_types</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"> <tt class="py-string">"Public-key algorithms"</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"> <tt id="link-70" class="py-name" targets="Variable paramiko.SecurityOptions.kex=paramiko.SecurityOptions-class.html#kex"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-70', 'kex', 'link-70');">kex</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-71" class="py-name" targets="Method paramiko.SecurityOptions._get_kex()=paramiko.SecurityOptions-class.html#_get_kex"><a title="paramiko.SecurityOptions._get_kex" class="py-name" href="#" onclick="return doclink('link-71', '_get_kex', 'link-71');">_get_kex</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name" targets="Method paramiko.SecurityOptions._set_kex()=paramiko.SecurityOptions-class.html#_set_kex"><a title="paramiko.SecurityOptions._set_kex" class="py-name" href="#" onclick="return doclink('link-72', '_set_kex', 'link-72');">_set_kex</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"Key exchange algorithms"</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"> <tt id="link-73" class="py-name" targets="Variable paramiko.SecurityOptions.compression=paramiko.SecurityOptions-class.html#compression"><a title="paramiko.SecurityOptions.compression" class="py-name" href="#" onclick="return doclink('link-73', 'compression', 'link-73');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name" targets="Method paramiko.SecurityOptions._get_compression()=paramiko.SecurityOptions-class.html#_get_compression"><a title="paramiko.SecurityOptions._get_compression" class="py-name" href="#" onclick="return doclink('link-74', '_get_compression', 'link-74');">_get_compression</a></tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name" targets="Method paramiko.SecurityOptions._set_compression()=paramiko.SecurityOptions-class.html#_set_compression"><a title="paramiko.SecurityOptions._set_compression" class="py-name" href="#" onclick="return doclink('link-75', '_set_compression', 'link-75');">_set_compression</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"> <tt class="py-string">"Compression algorithms"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap"></a><div id="ChannelMap-def"><a name="L147"></a><tt class="py-lineno"> 147</tt> <a class="py-toggle" href="#" id="ChannelMap-toggle" onclick="return toggle('ChannelMap');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html">ChannelMap</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ChannelMap-expanded"><a name="ChannelMap.__init__"></a><div id="ChannelMap.__init__-def"><a name="L148"></a><tt class="py-lineno"> 148</tt> <a class="py-toggle" href="#" id="ChannelMap.__init__-toggle" onclick="return toggle('ChannelMap.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.__init__-expanded"><a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"> <tt class="py-comment"># (id -&gt; Channel)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt> <tt class="py-op">=</tt> <tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">WeakValueDictionary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap.put"></a><div id="ChannelMap.put-def"><a name="L153"></a><tt class="py-lineno"> 153</tt> <a class="py-toggle" href="#" id="ChannelMap.put-toggle" onclick="return toggle('ChannelMap.put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#put">put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">,</tt> <tt class="py-param">chan</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.put-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.put-expanded"><a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">chan</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap.get"></a><div id="ChannelMap.get-def"><a name="L160"></a><tt class="py-lineno"> 160</tt> <a class="py-toggle" href="#" id="ChannelMap.get-toggle" onclick="return toggle('ChannelMap.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.get-expanded"><a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method paramiko.SFTPClient.get()=paramiko.SFTPClient-class.html#get,Method paramiko.transport.ChannelMap.get()=paramiko.transport.ChannelMap-class.html#get"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-76', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap.delete"></a><div id="ChannelMap.delete-def"><a name="L167"></a><tt class="py-lineno"> 167</tt> <a class="py-toggle" href="#" id="ChannelMap.delete-toggle" onclick="return toggle('ChannelMap.delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#delete">delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.delete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.delete-expanded"><a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap.values"></a><div id="ChannelMap.values-def"><a name="L177"></a><tt class="py-lineno"> 177</tt> <a class="py-toggle" href="#" id="ChannelMap.values-toggle" onclick="return toggle('ChannelMap.values');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#values">values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.values-expanded"><a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method paramiko.HostKeys.values()=paramiko.HostKeys-class.html#values,Method paramiko.transport.ChannelMap.values()=paramiko.transport.ChannelMap-class.html#values"><a title="paramiko.HostKeys.values
+paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-77', 'values', 'link-77');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> </tt>
+<a name="ChannelMap.__len__"></a><div id="ChannelMap.__len__-def"><a name="L184"></a><tt class="py-lineno"> 184</tt> <a class="py-toggle" href="#" id="ChannelMap.__len__-toggle" onclick="return toggle('ChannelMap.__len__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.ChannelMap-class.html#__len__">__len__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelMap.__len__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ChannelMap.__len__-expanded"><a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_map</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"> </tt>
+<a name="Transport"></a><div id="Transport-def"><a name="L192"></a><tt class="py-lineno"> 192</tt> <a class="py-toggle" href="#" id="Transport-toggle" onclick="return toggle('Transport');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html">Transport</a> <tt class="py-op">(</tt><tt class="py-base-class">threading</tt><tt class="py-op">.</tt><tt class="py-base-class">Thread</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Transport-expanded"><a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> An SSH Transport attaches to a stream (usually a socket), negotiates an</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"> encrypted session, authenticates, and then creates stream tunnels, called</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}s, across the session. Multiple channels can be multiplexed</tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-docstring"> across a single session (and often are, in the case of port forwardings).</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> <tt id="link-78" class="py-name" targets="Variable paramiko.Transport._PROTO_ID=paramiko.Transport-class.html#_PROTO_ID"><a title="paramiko.Transport._PROTO_ID" class="py-name" href="#" onclick="return doclink('link-78', '_PROTO_ID', 'link-78');">_PROTO_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'2.0'</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"> <tt id="link-79" class="py-name" targets="Variable paramiko.Transport._CLIENT_ID=paramiko.Transport-class.html#_CLIENT_ID"><a title="paramiko.Transport._CLIENT_ID" class="py-name" href="#" onclick="return doclink('link-79', '_CLIENT_ID', 'link-79');">_CLIENT_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'paramiko_1.7.6'</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-80', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'aes128-ctr'</tt><tt class="py-op">,</tt> <tt class="py-string">'aes256-ctr'</tt><tt class="py-op">,</tt> <tt class="py-string">'aes128-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'blowfish-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'aes256-cbc'</tt><tt class="py-op">,</tt> <tt class="py-string">'3des-cbc'</tt><tt class="py-op">,</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> <tt class="py-string">'arcfour128'</tt><tt class="py-op">,</tt> <tt class="py-string">'arcfour256'</tt> <tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt id="link-81" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-81', '_preferred_macs', 'link-54');">_preferred_macs</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'hmac-sha1'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-md5'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-sha1-96'</tt><tt class="py-op">,</tt> <tt class="py-string">'hmac-md5-96'</tt> <tt class="py-op">)</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt id="link-82" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-82', '_preferred_keys', 'link-55');">_preferred_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">,</tt> <tt class="py-string">'ssh-dss'</tt> <tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-83', '_preferred_kex', 'link-56');">_preferred_kex</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'diffie-hellman-group1-sha1'</tt><tt class="py-op">,</tt> <tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt> <tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt id="link-84" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-84', '_preferred_compression', 'link-57');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'none'</tt><tt class="py-op">,</tt> <tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> <tt id="link-85" class="py-name" targets="Variable paramiko.Transport._cipher_info=paramiko.Transport-class.html#_cipher_info"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-85', '_cipher_info', 'link-85');">_cipher_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> <tt class="py-string">'aes128-ctr'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CTR</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> <tt class="py-string">'aes256-ctr'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CTR</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">32</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-string">'blowfish-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">Blowfish</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> <tt class="py-string">'aes128-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> <tt class="py-string">'aes256-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">AES</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">32</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> <tt class="py-string">'3des-cbc'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">DES3</tt><tt class="py-op">.</tt><tt class="py-name">MODE_CBC</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">24</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"> <tt class="py-string">'arcfour128'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">ARC4</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"> <tt class="py-string">'arcfour256'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">ARC4</tt><tt class="py-op">,</tt> <tt class="py-string">'mode'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'block-size'</tt><tt class="py-op">:</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'key-size'</tt><tt class="py-op">:</tt> <tt class="py-number">32</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"> <tt id="link-86" class="py-name" targets="Variable paramiko.Transport._mac_info=paramiko.Transport-class.html#_mac_info"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-86', '_mac_info', 'link-86');">_mac_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"> <tt class="py-string">'hmac-sha1'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">20</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> <tt class="py-string">'hmac-sha1-96'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">SHA</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">12</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"> <tt class="py-string">'hmac-md5'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"> <tt class="py-string">'hmac-md5-96'</tt><tt class="py-op">:</tt> <tt class="py-op">{</tt> <tt class="py-string">'class'</tt><tt class="py-op">:</tt> <tt class="py-name">MD5</tt><tt class="py-op">,</tt> <tt class="py-string">'size'</tt><tt class="py-op">:</tt> <tt class="py-number">12</tt> <tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"> <tt id="link-87" class="py-name" targets="Variable paramiko.Transport._key_info=paramiko.Transport-class.html#_key_info"><a title="paramiko.Transport._key_info" class="py-name" href="#" onclick="return doclink('link-87', '_key_info', 'link-87');">_key_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> <tt class="py-string">'ssh-rsa'</tt><tt class="py-op">:</tt> <tt id="link-88" class="py-name"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-88', 'RSAKey', 'link-33');">RSAKey</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt class="py-string">'ssh-dss'</tt><tt class="py-op">:</tt> <tt id="link-89" class="py-name"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-89', 'DSSKey', 'link-15');">DSSKey</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> <tt id="link-90" class="py-name" targets="Variable paramiko.Transport._kex_info=paramiko.Transport-class.html#_kex_info"><a title="paramiko.Transport._kex_info" class="py-name" href="#" onclick="return doclink('link-90', '_kex_info', 'link-90');">_kex_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-string">'diffie-hellman-group1-sha1'</tt><tt class="py-op">:</tt> <tt id="link-91" class="py-name"><a title="paramiko.kex_group1.KexGroup1" class="py-name" href="#" onclick="return doclink('link-91', 'KexGroup1', 'link-21');">KexGroup1</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt><tt class="py-op">:</tt> <tt id="link-92" class="py-name"><a title="paramiko.kex_gex.KexGex" class="py-name" href="#" onclick="return doclink('link-92', 'KexGex', 'link-18');">KexGex</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt id="link-94" class="py-name" targets="Variable paramiko.Transport._modulus_pack=paramiko.Transport-class.html#_modulus_pack"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-94', '_modulus_pack', 'link-94');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> </tt>
-<a name="Transport.__init__"></a><div id="Transport.__init__-def"><a name="L241"></a><tt class="py-lineno"> 241</tt> <a class="py-toggle" href="#" id="Transport.__init__-toggle" onclick="return toggle('Transport.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sock</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.__init__-expanded"><a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"><tt class="py-docstring"> Create a new SSH session over an existing socket, or socket-like</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"><tt class="py-docstring"> object. This only creates the Transport object; it doesn't begin the</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"> SSH session yet. Use L{connect} or L{start_client} to begin a client</tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"> session, or L{start_server} to begin a server session.</tt> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-docstring"> If the object is not actually a socket, it must have the following</tt> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-docstring"> methods:</tt> </tt>
-<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-docstring"> - C{send(str)}: Writes from 1 to C{len(str)} bytes, and</tt> </tt>
-<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"><tt class="py-docstring"> returns an int representing the number of bytes written. Returns</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"> 0 or raises C{EOFError} if the stream has been closed.</tt> </tt>
-<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt class="py-docstring"> - C{recv(int)}: Reads from 1 to C{int} bytes and returns them as a</tt> </tt>
-<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"><tt class="py-docstring"> string. Returns 0 or raises C{EOFError} if the stream has been</tt> </tt>
-<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"><tt class="py-docstring"> closed.</tt> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"><tt class="py-docstring"> - C{close()}: Closes the socket.</tt> </tt>
-<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"><tt class="py-docstring"> - C{settimeout(n)}: Sets a (float) timeout on I/O operations.</tt> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"><tt class="py-docstring"> For ease of use, you may also pass in an address (as a tuple) or a host</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"><tt class="py-docstring"> string as the C{sock} argument. (A host string is a hostname with an</tt> </tt>
-<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"><tt class="py-docstring"> optional port (separated by C{":"}) which will be converted into a</tt> </tt>
-<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"><tt class="py-docstring"> tuple of C{(hostname, port)}.) A socket will be connected to this</tt> </tt>
-<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"><tt class="py-docstring"> address and used for communication. Exceptions from the C{socket} call</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"><tt class="py-docstring"> may be thrown in this case.</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"><tt class="py-docstring"> @param sock: a socket or socket-like object to create the session over.</tt> </tt>
-<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"><tt class="py-docstring"> @type sock: socket</tt> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> <tt class="py-comment"># convert "host:port" into (host, port)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">22</tt><tt class="py-op">)</tt> </tt>
-<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"> <tt class="py-comment"># connect to the given (host, port)</tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
-<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_INET</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method paramiko.SSHClient.connect()=paramiko.SSHClient-class.html#connect,Method paramiko.Transport.connect()=paramiko.Transport-class.html#connect"><a title="paramiko.SSHClient.connect
-paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-95', 'connect', 'link-95');">connect</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> <tt class="py-comment"># okay, normal socket-ish flow here...</tt> </tt>
-<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
+<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt id="link-93" class="py-name" targets="Variable paramiko.Transport._compression_info=paramiko.Transport-class.html#_compression_info"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-93', '_compression_info', 'link-93');">_compression_info</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-comment"># zlib@openssh.com is just zlib, but only turned on after a successful</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt class="py-comment"># authentication. openssh servers may only offer this type because</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"> <tt class="py-comment"># they've had troubles with security holes in zlib in the past.</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt id="link-94" class="py-name"><a title="paramiko.compress.ZlibCompressor" class="py-name" href="#" onclick="return doclink('link-94', 'ZlibCompressor', 'link-11');">ZlibCompressor</a></tt><tt class="py-op">,</tt> <tt id="link-95" class="py-name"><a title="paramiko.compress.ZlibDecompressor" class="py-name" href="#" onclick="return doclink('link-95', 'ZlibDecompressor', 'link-12');">ZlibDecompressor</a></tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> <tt class="py-string">'zlib'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt id="link-96" class="py-name"><a title="paramiko.compress.ZlibCompressor" class="py-name" href="#" onclick="return doclink('link-96', 'ZlibCompressor', 'link-11');">ZlibCompressor</a></tt><tt class="py-op">,</tt> <tt id="link-97" class="py-name"><a title="paramiko.compress.ZlibDecompressor" class="py-name" href="#" onclick="return doclink('link-97', 'ZlibDecompressor', 'link-12');">ZlibDecompressor</a></tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt class="py-string">'none'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"> <tt id="link-98" class="py-name" targets="Variable paramiko.Transport._modulus_pack=paramiko.Transport-class.html#_modulus_pack"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-98', '_modulus_pack', 'link-98');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"> </tt>
+<a name="Transport.__init__"></a><div id="Transport.__init__-def"><a name="L250"></a><tt class="py-lineno"> 250</tt> <a class="py-toggle" href="#" id="Transport.__init__-toggle" onclick="return toggle('Transport.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sock</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.__init__-expanded"><a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"> Create a new SSH session over an existing socket, or socket-like</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt class="py-docstring"> object. This only creates the Transport object; it doesn't begin the</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"><tt class="py-docstring"> SSH session yet. Use L{connect} or L{start_client} to begin a client</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"><tt class="py-docstring"> session, or L{start_server} to begin a server session.</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"><tt class="py-docstring"> If the object is not actually a socket, it must have the following</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"><tt class="py-docstring"> methods:</tt> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"><tt class="py-docstring"> - C{send(str)}: Writes from 1 to C{len(str)} bytes, and</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"><tt class="py-docstring"> returns an int representing the number of bytes written. Returns</tt> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"><tt class="py-docstring"> 0 or raises C{EOFError} if the stream has been closed.</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"><tt class="py-docstring"> - C{recv(int)}: Reads from 1 to C{int} bytes and returns them as a</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"><tt class="py-docstring"> string. Returns 0 or raises C{EOFError} if the stream has been</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"><tt class="py-docstring"> closed.</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"><tt class="py-docstring"> - C{close()}: Closes the socket.</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"><tt class="py-docstring"> - C{settimeout(n)}: Sets a (float) timeout on I/O operations.</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"><tt class="py-docstring"> For ease of use, you may also pass in an address (as a tuple) or a host</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"><tt class="py-docstring"> string as the C{sock} argument. (A host string is a hostname with an</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"><tt class="py-docstring"> optional port (separated by C{":"}) which will be converted into a</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-docstring"> tuple of C{(hostname, port)}.) A socket will be connected to this</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"><tt class="py-docstring"> address and used for communication. Exceptions from the C{socket} call</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-docstring"> may be thrown in this case.</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"><tt class="py-docstring"> @param sock: a socket or socket-like object to create the session over.</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"> @type sock: socket</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-comment"># convert "host:port" into (host, port)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">22</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">hl</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"> <tt class="py-comment"># connect to the given (host, port)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">family</tt><tt class="py-op">,</tt> <tt class="py-name">socktype</tt><tt class="py-op">,</tt> <tt class="py-name">proto</tt><tt class="py-op">,</tt> <tt class="py-name">canonname</tt><tt class="py-op">,</tt> <tt class="py-name">sockaddr</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">getaddrinfo</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_UNSPEC</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">socktype</tt> <tt class="py-op">==</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">:</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-name">af</tt> <tt class="py-op">=</tt> <tt class="py-name">family</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-name">addr</tt> <tt class="py-op">=</tt> <tt class="py-name">sockaddr</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-99" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-99', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No suitable address family for %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-name">af</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method paramiko.SSHClient.connect()=paramiko.SSHClient-class.html#connect,Method paramiko.Transport.connect()=paramiko.Transport-class.html#connect"><a title="paramiko.SSHClient.connect
+paramiko.Transport.connect" class="py-name" href="#" onclick="return doclink('link-100', 'connect', 'link-100');">connect</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-comment"># okay, normal socket-ish flow here...</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method paramiko.Agent.__init__()=paramiko.Agent-class.html#__init__,Method paramiko.AgentKey.__init__()=paramiko.AgentKey-class.html#__init__,Method paramiko.BadAuthenticationType.__init__()=paramiko.BadAuthenticationType-class.html#__init__,Method paramiko.BadHostKeyException.__init__()=paramiko.BadHostKeyException-class.html#__init__,Method paramiko.BufferedFile.__init__()=paramiko.BufferedFile-class.html#__init__,Method paramiko.Channel.__init__()=paramiko.Channel-class.html#__init__,Method paramiko.ChannelException.__init__()=paramiko.ChannelException-class.html#__init__,Method paramiko.DSSKey.__init__()=paramiko.DSSKey-class.html#__init__,Method paramiko.HostKeys.__init__()=paramiko.HostKeys-class.html#__init__,Method paramiko.Message.__init__()=paramiko.Message-class.html#__init__,Method paramiko.PKey.__init__()=paramiko.PKey-class.html#__init__,Method paramiko.RSAKey.__init__()=paramiko.RSAKey-class.html#__init__,Method paramiko.SFTPAttributes.__init__()=paramiko.SFTPAttributes-class.html#__init__,Method paramiko.SFTPClient.__init__()=paramiko.SFTPClient-class.html#__init__,Method paramiko.SFTPFile.__init__()=paramiko.SFTPFile-class.html#__init__,Method paramiko.SFTPHandle.__init__()=paramiko.SFTPHandle-class.html#__init__,Method paramiko.SFTPServer.__init__()=paramiko.SFTPServer-class.html#__init__,Method paramiko.SFTPServerInterface.__init__()=paramiko.SFTPServerInterface-class.html#__init__,Method paramiko.SSHClient.__init__()=paramiko.SSHClient-class.html#__init__,Method paramiko.SSHConfig.__init__()=paramiko.SSHConfig-class.html#__init__,Method paramiko.SecurityOptions.__init__()=paramiko.SecurityOptions-class.html#__init__,Method paramiko.SubsystemHandler.__init__()=paramiko.SubsystemHandler-class.html#__init__,Method paramiko.Transport.__init__()=paramiko.Transport-class.html#__init__,Method paramiko.ber.BER.__init__()=paramiko.ber.BER-class.html#__init__,Method paramiko.buffered_pipe.BufferedPipe.__init__()=paramiko.buffered_pipe.BufferedPipe-class.html#__init__,Method paramiko.channel.ChannelStderrFile.__init__()=paramiko.channel.ChannelStderrFile-class.html#__init__,Method paramiko.compress.ZlibCompressor.__init__()=paramiko.compress.ZlibCompressor-class.html#__init__,Method paramiko.compress.ZlibDecompressor.__init__()=paramiko.compress.ZlibDecompressor-class.html#__init__,Method paramiko.hostkeys.HostKeyEntry.__init__()=paramiko.hostkeys.HostKeyEntry-class.html#__init__,Method paramiko.kex_gex.KexGex.__init__()=paramiko.kex_gex.KexGex-class.html#__init__,Method paramiko.kex_group1.KexGroup1.__init__()=paramiko.kex_group1.KexGroup1-class.html#__init__,Method paramiko.logging22.Formatter.__init__()=paramiko.logging22.Formatter-class.html#__init__,Method paramiko.logging22.StreamHandler.__init__()=paramiko.logging22.StreamHandler-class.html#__init__,Method paramiko.logging22.logger.__init__()=paramiko.logging22.logger-class.html#__init__,Method paramiko.pipe.OrPipe.__init__()=paramiko.pipe.OrPipe-class.html#__init__,Method paramiko.pipe.PosixPipe.__init__()=paramiko.pipe.PosixPipe-class.html#__init__,Method paramiko.pipe.WindowsPipe.__init__()=paramiko.pipe.WindowsPipe-class.html#__init__,Method paramiko.primes.ModulusPack.__init__()=paramiko.primes.ModulusPack-class.html#__init__,Method paramiko.rng.StrongLockingRandomPool.__init__()=paramiko.rng.StrongLockingRandomPool-class.html#__init__,Method paramiko.ssh_exception.PartialAuthentication.__init__()=paramiko.ssh_exception.PartialAuthentication-class.html#__init__,Method paramiko.transport.ChannelMap.__init__()=paramiko.transport.ChannelMap-class.html#__init__,Method paramiko.util.Counter.__init__()=paramiko.util.Counter-class.html#__init__,Method paramiko.util.enumerate.__init__()=paramiko.util.enumerate-class.html#__init__,Method paramiko.win_pageant.PageantConnection.__init__()=paramiko.win_pageant.PageantConnection-class.html#__init__"><a title="paramiko.Agent.__init__
paramiko.AgentKey.__init__
paramiko.BadAuthenticationType.__init__
paramiko.BadHostKeyException.__init__
@@ -380,9 +396,11 @@ paramiko.primes.ModulusPack.__init__
paramiko.rng.StrongLockingRandomPool.__init__
paramiko.ssh_exception.PartialAuthentication.__init__
paramiko.transport.ChannelMap.__init__
+paramiko.util.Counter.__init__
paramiko.util.enumerate.__init__
-paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-96', '__init__', 'link-96');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
+paramiko.win_pageant.PageantConnection.__init__" class="py-name" href="#" onclick="return doclink('link-101', '__init__', 'link-101');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">setDaemon</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Variable paramiko.auth_handler.randpool=paramiko.auth_handler-module.html#randpool,Variable paramiko.channel.randpool=paramiko.channel-module.html#randpool,Variable paramiko.client.randpool=paramiko.client-module.html#randpool,Variable paramiko.common.randpool=paramiko.common-module.html#randpool,Variable paramiko.dsskey.randpool=paramiko.dsskey-module.html#randpool,Variable paramiko.hostkeys.randpool=paramiko.hostkeys-module.html#randpool,Variable paramiko.kex_gex.randpool=paramiko.kex_gex-module.html#randpool,Variable paramiko.kex_group1.randpool=paramiko.kex_group1-module.html#randpool,Variable paramiko.packet.randpool=paramiko.packet-module.html#randpool,Variable paramiko.pkey.randpool=paramiko.pkey-module.html#randpool,Variable paramiko.rsakey.randpool=paramiko.rsakey-module.html#randpool,Variable paramiko.server.randpool=paramiko.server-module.html#randpool,Variable paramiko.sftp.randpool=paramiko.sftp-module.html#randpool,Variable paramiko.sftp_attr.randpool=paramiko.sftp_attr-module.html#randpool,Variable paramiko.sftp_client.randpool=paramiko.sftp_client-module.html#randpool,Variable paramiko.sftp_file.randpool=paramiko.sftp_file-module.html#randpool,Variable paramiko.sftp_handle.randpool=paramiko.sftp_handle-module.html#randpool,Variable paramiko.sftp_server.randpool=paramiko.sftp_server-module.html#randpool,Variable paramiko.sftp_si.randpool=paramiko.sftp_si-module.html#randpool,Variable paramiko.transport.randpool=paramiko.transport-module.html#randpool,Variable paramiko.util.randpool=paramiko.util-module.html#randpool"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -402,7 +420,7 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-97', 'randpool', 'link-97');">randpool</a></tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-102', 'randpool', 'link-102');">randpool</a></tt> <tt class="py-op">=</tt> <tt id="link-103" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -422,104 +440,105 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-98', 'randpool', 'link-97');">randpool</a></tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-comment"># Python &lt; 2.3 doesn't have the settimeout method - RogerB</tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-comment"># we set the timeout so we can check self.active periodically to</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># see if we should bail. socket.timeout exception is never</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># propagated.</tt> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
-paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-99', 'settimeout', 'link-99');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> </tt>
-<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-comment"># negotiated crypto parameters</tt> </tt>
-<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt> <tt class="py-op">=</tt> <tt class="py-name">Packetizer</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt> <tt class="py-op">=</tt> <tt class="py-string">'SSH-'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="paramiko.Transport._PROTO_ID" class="py-name" href="#" onclick="return doclink('link-100', '_PROTO_ID', 'link-74');">_PROTO_ID</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'-'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="paramiko.Transport._CLIENT_ID" class="py-name" href="#" onclick="return doclink('link-101', '_CLIENT_ID', 'link-75');">_CLIENT_ID</a></tt> </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt class="py-comment"># state used during negotiation</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-103', 'randpool', 'link-102');">randpool</a></tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">sock</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-comment"># Python &lt; 2.3 doesn't have the settimeout method - RogerB</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-comment"># we set the timeout so we can check self.active periodically to</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> <tt class="py-comment"># see if we should bail. socket.timeout exception is never</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt class="py-comment"># propagated.</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method paramiko.Channel.settimeout()=paramiko.Channel-class.html#settimeout,Method paramiko.SFTPFile.settimeout()=paramiko.SFTPFile-class.html#settimeout"><a title="paramiko.Channel.settimeout
+paramiko.SFTPFile.settimeout" class="py-name" href="#" onclick="return doclink('link-104', 'settimeout', 'link-104');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># synchronization (always higher level than write_lock)</tt> </tt>
-<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> </tt>
-<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-comment"># tracking open channels</tt> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name" targets="Class paramiko.transport.ChannelMap=paramiko.transport.ChannelMap-class.html"><a title="paramiko.transport.ChannelMap" class="py-name" href="#" onclick="return doclink('link-102', 'ChannelMap', 'link-102');">ChannelMap</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> <tt class="py-comment"># (id -&gt; Event)</tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> <tt class="py-comment"># (id -&gt; True)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt> <tt class="py-op">=</tt> <tt class="py-number">65536</tt> </tt>
-<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-number">34816</tt> </tt>
-<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-comment"># negotiated crypto parameters</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt> <tt class="py-op">=</tt> <tt class="py-name">Packetizer</tt><tt class="py-op">(</tt><tt class="py-name">sock</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt> <tt class="py-op">=</tt> <tt class="py-string">'SSH-'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="paramiko.Transport._PROTO_ID" class="py-name" href="#" onclick="return doclink('link-105', '_PROTO_ID', 'link-78');">_PROTO_ID</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'-'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="paramiko.Transport._CLIENT_ID" class="py-name" href="#" onclick="return doclink('link-106', '_CLIENT_ID', 'link-79');">_CLIENT_ID</a></tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-comment"># state used during negotiation</tt> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'paramiko.transport'</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Class paramiko.logging22.logger=paramiko.logging22.logger-class.html"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-103', 'logger', 'link-103');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-104" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-104', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Function paramiko.util.get_logger()=paramiko.util-module.html#get_logger"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-105', 'get_logger', 'link-105');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt><tt class="py-op">)</tt> </tt>
-<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_log</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-106', 'logger', 'link-103');">logger</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-107', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># response Message from an arbitrary global request</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># user-defined event callbacks</tt> </tt>
-<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">banner_timeout</tt> <tt class="py-op">=</tt> <tt class="py-number">15</tt> <tt class="py-comment"># how long (seconds) to wait for the SSH banner</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> </tt>
-<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> <tt class="py-comment"># server mode:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">]</tt> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Condition</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
-</div><a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> </tt>
-<a name="Transport.__repr__"></a><div id="Transport.__repr__-def"><a name="L347"></a><tt class="py-lineno"> 347</tt> <a class="py-toggle" href="#" id="Transport.__repr__-toggle" onclick="return toggle('Transport.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.__repr__-expanded"><a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;paramiko.Transport at %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (unconnected)'</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (cipher %s, %d bits)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-108', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method paramiko.Transport.is_authenticated()=paramiko.Transport-class.html#is_authenticated"><a title="paramiko.Transport.is_authenticated" class="py-name" href="#" onclick="return doclink('link-109', 'is_authenticated', 'link-109');">is_authenticated</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (active; %d open channel(s))'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">)</tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">:</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (connected; awaiting auth)'</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (connecting)'</tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt;'</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> </tt>
-<a name="Transport.atfork"></a><div id="Transport.atfork-def"><a name="L369"></a><tt class="py-lineno"> 369</tt> <a class="py-toggle" href="#" id="Transport.atfork-toggle" onclick="return toggle('Transport.atfork');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#atfork">atfork</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.atfork-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.atfork-expanded"><a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"><tt class="py-docstring"> Terminate this Transport without closing the session. On posix</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"><tt class="py-docstring"> systems, if a Transport is open during process forking, both parent</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"><tt class="py-docstring"> and child will share the underlying socket, but only one process can</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"><tt class="py-docstring"> use the connection (without corrupting the session). Use this method</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"><tt class="py-docstring"> to clean up a Transport object without disrupting the other process.</tt> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.3</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
+<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># synchronization (always higher level than write_lock)</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-comment"># tracking open channels</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt> <tt class="py-op">=</tt> <tt id="link-107" class="py-name" targets="Class paramiko.transport.ChannelMap=paramiko.transport.ChannelMap-class.html"><a title="paramiko.transport.ChannelMap" class="py-name" href="#" onclick="return doclink('link-107', 'ChannelMap', 'link-107');">ChannelMap</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> <tt class="py-comment"># (id -&gt; Event)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> <tt class="py-comment"># (id -&gt; True)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt> <tt class="py-op">=</tt> <tt class="py-number">65536</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-number">34816</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_timeout</tt> <tt class="py-op">=</tt> <tt class="py-number">30.0</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'paramiko.transport'</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Class paramiko.logging22.logger=paramiko.logging22.logger-class.html"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-108', 'logger', 'link-108');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-109', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Function paramiko.util.get_logger()=paramiko.util-module.html#get_logger"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-110', 'get_logger', 'link-110');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_log</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-111', 'logger', 'link-108');">logger</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-112', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># response Message from an arbitrary global request</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># user-defined event callbacks</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">banner_timeout</tt> <tt class="py-op">=</tt> <tt class="py-number">15</tt> <tt class="py-comment"># how long (seconds) to wait for the SSH banner</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-comment"># server mode:</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Condition</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">)</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">}</tt> </tt>
+</div><a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> </tt>
+<a name="Transport.__repr__"></a><div id="Transport.__repr__-def"><a name="L365"></a><tt class="py-lineno"> 365</tt> <a class="py-toggle" href="#" id="Transport.__repr__-toggle" onclick="return toggle('Transport.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.__repr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.__repr__-expanded"><a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"><tt class="py-docstring"> Returns a string representation of this object, for debugging.</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;paramiko.Transport at %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (unconnected)'</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (cipher %s, %d bits)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-113', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method paramiko.Transport.is_authenticated()=paramiko.Transport-class.html#is_authenticated"><a title="paramiko.Transport.is_authenticated" class="py-name" href="#" onclick="return doclink('link-114', 'is_authenticated', 'link-114');">is_authenticated</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (active; %d open channel(s))'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (connected; awaiting auth)'</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' (connecting)'</tt> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'&gt;'</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> </tt>
+<a name="Transport.atfork"></a><div id="Transport.atfork-def"><a name="L387"></a><tt class="py-lineno"> 387</tt> <a class="py-toggle" href="#" id="Transport.atfork-toggle" onclick="return toggle('Transport.atfork');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#atfork">atfork</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.atfork-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.atfork-expanded"><a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> Terminate this Transport without closing the session. On posix</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> systems, if a Transport is open during process forking, both parent</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> and child will share the underlying socket, but only one process can</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"><tt class="py-docstring"> use the connection (without corrupting the session). Use this method</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"><tt class="py-docstring"> to clean up a Transport object without disrupting the other process.</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.3</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name" targets="Method paramiko.Agent.close()=paramiko.Agent-class.html#close,Method paramiko.BufferedFile.close()=paramiko.BufferedFile-class.html#close,Method paramiko.Channel.close()=paramiko.Channel-class.html#close,Method paramiko.SFTPClient.close()=paramiko.SFTPClient-class.html#close,Method paramiko.SFTPFile.close()=paramiko.SFTPFile-class.html#close,Method paramiko.SFTPHandle.close()=paramiko.SFTPHandle-class.html#close,Method paramiko.SSHClient.close()=paramiko.SSHClient-class.html#close,Method paramiko.Transport.close()=paramiko.Transport-class.html#close,Method paramiko.buffered_pipe.BufferedPipe.close()=paramiko.buffered_pipe.BufferedPipe-class.html#close,Method paramiko.pipe.PosixPipe.close()=paramiko.pipe.PosixPipe-class.html#close,Method paramiko.pipe.WindowsPipe.close()=paramiko.pipe.WindowsPipe-class.html#close,Method paramiko.win_pageant.PageantConnection.close()=paramiko.win_pageant.PageantConnection-class.html#close"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -530,8 +549,8 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-110', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="paramiko.Agent.close
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-115', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -542,201 +561,201 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-111', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_security_options"></a><div id="Transport.get_security_options-def"><a name="L382"></a><tt class="py-lineno"> 382</tt> <a class="py-toggle" href="#" id="Transport.get_security_options-toggle" onclick="return toggle('Transport.get_security_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_security_options">get_security_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_security_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_security_options-expanded"><a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"><tt class="py-docstring"> Return a L{SecurityOptions} object which can be used to tweak the</tt> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"><tt class="py-docstring"> encryption algorithms this transport will permit, and the order of</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"><tt class="py-docstring"> preference for them.</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object that can be used to change the preferred algorithms</tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> for encryption, digest (hash), public key, and key exchange.</tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SecurityOptions}</tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-112" class="py-name" targets="Class paramiko.SecurityOptions=paramiko.SecurityOptions-class.html"><a title="paramiko.SecurityOptions" class="py-name" href="#" onclick="return doclink('link-112', 'SecurityOptions', 'link-112');">SecurityOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> </tt>
-<a name="Transport.start_client"></a><div id="Transport.start_client-def"><a name="L394"></a><tt class="py-lineno"> 394</tt> <a class="py-toggle" href="#" id="Transport.start_client-toggle" onclick="return toggle('Transport.start_client');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#start_client">start_client</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.start_client-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.start_client-expanded"><a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate a new SSH2 session as a client. This is the first step after</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> creating a new L{Transport}. A separate thread is created for protocol</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"><tt class="py-docstring"> negotiation.</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"><tt class="py-docstring"> If an event is passed in, this method returns immediately. When</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"><tt class="py-docstring"> negotiation is done (successful or not), the given C{Event} will</tt> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"><tt class="py-docstring"> be triggered. On failure, L{is_active} will return C{False}.</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"><tt class="py-docstring"> (Since 1.4) If C{event} is C{None}, this method will not return until</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"> negotation is done. On success, the method returns normally.</tt> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise an SSHException is raised.</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"> After a successful negotiation, you will usually want to authenticate,</tt> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"> calling L{auth_password &lt;Transport.auth_password&gt;} or</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> L{auth_publickey &lt;Transport.auth_publickey&gt;}.</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"><tt class="py-docstring"> @note: L{connect} is a simpler method for connecting as a client.</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"><tt class="py-docstring"> @note: After calling this method (or L{start_server} or L{connect}),</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt class="py-docstring"> you should no longer directly read from or write to the original</tt> </tt>
-<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> socket object.</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-116', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_security_options"></a><div id="Transport.get_security_options-def"><a name="L400"></a><tt class="py-lineno"> 400</tt> <a class="py-toggle" href="#" id="Transport.get_security_options-toggle" onclick="return toggle('Transport.get_security_options');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_security_options">get_security_options</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_security_options-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_security_options-expanded"><a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"><tt class="py-docstring"> Return a L{SecurityOptions} object which can be used to tweak the</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"><tt class="py-docstring"> encryption algorithms this transport will permit, and the order of</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"><tt class="py-docstring"> preference for them.</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> @return: an object that can be used to change the preferred algorithms</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"> for encryption, digest (hash), public key, and key exchange.</tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SecurityOptions}</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-117" class="py-name" targets="Class paramiko.SecurityOptions=paramiko.SecurityOptions-class.html"><a title="paramiko.SecurityOptions" class="py-name" href="#" onclick="return doclink('link-117', 'SecurityOptions', 'link-117');">SecurityOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"> </tt>
+<a name="Transport.start_client"></a><div id="Transport.start_client-def"><a name="L412"></a><tt class="py-lineno"> 412</tt> <a class="py-toggle" href="#" id="Transport.start_client-toggle" onclick="return toggle('Transport.start_client');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#start_client">start_client</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.start_client-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.start_client-expanded"><a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate a new SSH2 session as a client. This is the first step after</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt class="py-docstring"> creating a new L{Transport}. A separate thread is created for protocol</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> negotiation.</tt> </tt>
<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when negotiation is complete</tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"><tt class="py-docstring"> (optional)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"><tt class="py-docstring"> If an event is passed in, this method returns immediately. When</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"><tt class="py-docstring"> negotiation is done (successful or not), the given C{Event} will</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"><tt class="py-docstring"> be triggered. On failure, L{is_active} will return C{False}.</tt> </tt>
<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if negotiation fails (and no C{event} was passed</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> in)</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-comment"># async, return immediately and let the app poll for completion</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> <tt class="py-comment"># synchronous, wait for a result</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method paramiko.Transport.get_exception()=paramiko.Transport-class.html#get_exception"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-113', 'get_exception', 'link-113');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-114" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-114', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-</div><a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> </tt>
-<a name="Transport.start_server"></a><div id="Transport.start_server-def"><a name="L445"></a><tt class="py-lineno"> 445</tt> <a class="py-toggle" href="#" id="Transport.start_server-toggle" onclick="return toggle('Transport.start_server');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#start_server">start_server</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">server</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.start_server-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.start_server-expanded"><a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate a new SSH2 session as a server. This is the first step after</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"><tt class="py-docstring"> creating a new L{Transport} and setting up your server host key(s). A</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"><tt class="py-docstring"> separate thread is created for protocol negotiation.</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"><tt class="py-docstring"> If an event is passed in, this method returns immediately. When</tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"><tt class="py-docstring"> negotiation is done (successful or not), the given C{Event} will</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"><tt class="py-docstring"> be triggered. On failure, L{is_active} will return C{False}.</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"><tt class="py-docstring"> (Since 1.4) If C{event} is C{None}, this method will not return until</tt> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"><tt class="py-docstring"> negotation is done. On success, the method returns normally.</tt> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise an SSHException is raised.</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"><tt class="py-docstring"> After a successful negotiation, the client will need to authenticate.</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"><tt class="py-docstring"> Override the methods</tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"><tt class="py-docstring"> L{get_allowed_auths &lt;ServerInterface.get_allowed_auths&gt;},</tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_none &lt;ServerInterface.check_auth_none&gt;},</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_password &lt;ServerInterface.check_auth_password&gt;}, and</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_publickey &lt;ServerInterface.check_auth_publickey&gt;} in the</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"><tt class="py-docstring"> given C{server} object to control the authentication process.</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"><tt class="py-docstring"> After a successful authentication, the client should request to open</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt class="py-docstring"> a channel. Override</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt class="py-docstring"> L{check_channel_request &lt;ServerInterface.check_channel_request&gt;} in the</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"><tt class="py-docstring"> given C{server} object to allow channels to be opened.</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"><tt class="py-docstring"> @note: After calling this method (or L{start_client} or L{connect}),</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"><tt class="py-docstring"> you should no longer directly read from or write to the original</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"><tt class="py-docstring"> socket object.</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when negotiation is complete.</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt class="py-docstring"> @param server: an object used to perform authentication and create</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}s.</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"><tt class="py-docstring"> @type server: L{server.ServerInterface}</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if negotiation fails (and no C{event} was passed</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"><tt class="py-docstring"> in)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-115" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-115', 'server', 'link-35');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"> <tt id="link-116" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-116', 'server', 'link-35');">server</a></tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="paramiko.ServerInterface" class="py-name" href="#" onclick="return doclink('link-117', 'ServerInterface', 'link-36');">ServerInterface</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-118', 'server', 'link-35');">server</a></tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"> <tt class="py-comment"># async, return immediately and let the app poll for completion</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> <tt class="py-comment"># synchronous, wait for a result</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-119', 'get_exception', 'link-113');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-120" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-120', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-</div><a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> </tt>
-<a name="Transport.add_server_key"></a><div id="Transport.add_server_key-def"><a name="L509"></a><tt class="py-lineno"> 509</tt> <a class="py-toggle" href="#" id="Transport.add_server_key-toggle" onclick="return toggle('Transport.add_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#add_server_key">add_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.add_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.add_server_key-expanded"><a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"><tt class="py-docstring"> Add a host key to the list of keys used for server mode. When behaving</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"><tt class="py-docstring"> as a server, the host key is used to sign certain packets during the</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"><tt class="py-docstring"> SSH2 negotiation, so that the client can trust that we are who we say</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"><tt class="py-docstring"> we are. Because this is used for signing, the key must contain private</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"><tt class="py-docstring"> key info, not just the public half. Only one key of each type (RSA or</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"><tt class="py-docstring"> DSS) is kept.</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the host key to add, usually an L{RSAKey &lt;rsakey.RSAKey&gt;} or</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"><tt class="py-docstring"> L{DSSKey &lt;dsskey.DSSKey&gt;}.</tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
+<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> (Since 1.4) If C{event} is C{None}, this method will not return until</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> negotation is done. On success, the method returns normally.</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise an SSHException is raised.</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"><tt class="py-docstring"> After a successful negotiation, you will usually want to authenticate,</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"><tt class="py-docstring"> calling L{auth_password &lt;Transport.auth_password&gt;} or</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"><tt class="py-docstring"> L{auth_publickey &lt;Transport.auth_publickey&gt;}.</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"><tt class="py-docstring"> @note: L{connect} is a simpler method for connecting as a client.</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"><tt class="py-docstring"> @note: After calling this method (or L{start_server} or L{connect}),</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"><tt class="py-docstring"> you should no longer directly read from or write to the original</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"><tt class="py-docstring"> socket object.</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when negotiation is complete</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"><tt class="py-docstring"> (optional)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if negotiation fails (and no C{event} was passed</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt class="py-docstring"> in)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"> <tt class="py-comment"># async, return immediately and let the app poll for completion</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-comment"># synchronous, wait for a result</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method paramiko.Transport.get_exception()=paramiko.Transport-class.html#get_exception"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-118', 'get_exception', 'link-118');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-119" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-119', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+</div><a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> </tt>
+<a name="Transport.start_server"></a><div id="Transport.start_server-def"><a name="L463"></a><tt class="py-lineno"> 463</tt> <a class="py-toggle" href="#" id="Transport.start_server-toggle" onclick="return toggle('Transport.start_server');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#start_server">start_server</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">server</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.start_server-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.start_server-expanded"><a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate a new SSH2 session as a server. This is the first step after</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"><tt class="py-docstring"> creating a new L{Transport} and setting up your server host key(s). A</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"><tt class="py-docstring"> separate thread is created for protocol negotiation.</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt class="py-docstring"> If an event is passed in, this method returns immediately. When</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"><tt class="py-docstring"> negotiation is done (successful or not), the given C{Event} will</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"><tt class="py-docstring"> be triggered. On failure, L{is_active} will return C{False}.</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"><tt class="py-docstring"> (Since 1.4) If C{event} is C{None}, this method will not return until</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"><tt class="py-docstring"> negotation is done. On success, the method returns normally.</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise an SSHException is raised.</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt class="py-docstring"> After a successful negotiation, the client will need to authenticate.</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt class="py-docstring"> Override the methods</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"><tt class="py-docstring"> L{get_allowed_auths &lt;ServerInterface.get_allowed_auths&gt;},</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_none &lt;ServerInterface.check_auth_none&gt;},</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_password &lt;ServerInterface.check_auth_password&gt;}, and</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"><tt class="py-docstring"> L{check_auth_publickey &lt;ServerInterface.check_auth_publickey&gt;} in the</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"><tt class="py-docstring"> given C{server} object to control the authentication process.</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"><tt class="py-docstring"> After a successful authentication, the client should request to open</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-docstring"> a channel. Override</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-docstring"> L{check_channel_request &lt;ServerInterface.check_channel_request&gt;} in the</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-docstring"> given C{server} object to allow channels to be opened.</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> @note: After calling this method (or L{start_client} or L{connect}),</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-docstring"> you should no longer directly read from or write to the original</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-docstring"> socket object.</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when negotiation is complete.</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"><tt class="py-docstring"> @param server: an object used to perform authentication and create</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}s.</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"><tt class="py-docstring"> @type server: L{server.ServerInterface}</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if negotiation fails (and no C{event} was passed</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"><tt class="py-docstring"> in)</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-120" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-120', 'server', 'link-35');">server</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt id="link-121" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-121', 'server', 'link-35');">server</a></tt> <tt class="py-op">=</tt> <tt id="link-122" class="py-name"><a title="paramiko.ServerInterface" class="py-name" href="#" onclick="return doclink('link-122', 'ServerInterface', 'link-36');">ServerInterface</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt> <tt class="py-op">=</tt> <tt id="link-123" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-123', 'server', 'link-35');">server</a></tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"> <tt class="py-comment"># async, return immediately and let the app poll for completion</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-comment"># synchronous, wait for a result</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-124', 'get_exception', 'link-118');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-125" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-125', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+</div><a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> </tt>
+<a name="Transport.add_server_key"></a><div id="Transport.add_server_key-def"><a name="L527"></a><tt class="py-lineno"> 527</tt> <a class="py-toggle" href="#" id="Transport.add_server_key-toggle" onclick="return toggle('Transport.add_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#add_server_key">add_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.add_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.add_server_key-expanded"><a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"><tt class="py-docstring"> Add a host key to the list of keys used for server mode. When behaving</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"><tt class="py-docstring"> as a server, the host key is used to sign certain packets during the</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"><tt class="py-docstring"> SSH2 negotiation, so that the client can trust that we are who we say</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"><tt class="py-docstring"> we are. Because this is used for signing, the key must contain private</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"><tt class="py-docstring"> key info, not just the public half. Only one key of each type (RSA or</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"><tt class="py-docstring"> DSS) is kept.</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the host key to add, usually an L{RSAKey &lt;rsakey.RSAKey&gt;} or</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"><tt class="py-docstring"> L{DSSKey &lt;dsskey.DSSKey&gt;}.</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method paramiko.AgentKey.get_name()=paramiko.AgentKey-class.html#get_name,Method paramiko.Channel.get_name()=paramiko.Channel-class.html#get_name,Method paramiko.DSSKey.get_name()=paramiko.DSSKey-class.html#get_name,Method paramiko.PKey.get_name()=paramiko.PKey-class.html#get_name,Method paramiko.RSAKey.get_name()=paramiko.RSAKey-class.html#get_name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-121', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_server_key"></a><div id="Transport.get_server_key-def"><a name="L524"></a><tt class="py-lineno"> 524</tt> <a class="py-toggle" href="#" id="Transport.get_server_key-toggle" onclick="return toggle('Transport.get_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_server_key">get_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_server_key-expanded"><a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"><tt class="py-docstring"> Return the active host key, in server mode. After negotiating with the</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"><tt class="py-docstring"> client, this method will return the negotiated host key. If only one</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"><tt class="py-docstring"> type of host key was set with L{add_server_key}, that's the only key</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"><tt class="py-docstring"> that will ever be returned. But in cases where you have set more than</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"><tt class="py-docstring"> one type of host key (for example, an RSA key and a DSS key), the key</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"><tt class="py-docstring"> type will be negotiated by the client, and this method will return the</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"><tt class="py-docstring"> key of the type agreed on. If the host key has not been negotiated</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"><tt class="py-docstring"> yet, C{None} is returned. In client mode, the behavior is undefined.</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"><tt class="py-docstring"> @return: host key of the type negotiated by the client, or C{None}.</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">]</tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> </tt>
-<a name="Transport.load_server_moduli"></a><div id="Transport.load_server_moduli-def"><a name="L544"></a><tt class="py-lineno"> 544</tt> <a class="py-toggle" href="#" id="Transport.load_server_moduli-toggle" onclick="return toggle('Transport.load_server_moduli');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#load_server_moduli">load_server_moduli</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.load_server_moduli-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.load_server_moduli-expanded"><a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"><tt class="py-docstring"> I{(optional)}</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"><tt class="py-docstring"> Load a file of prime moduli for use in doing group-exchange key</tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"><tt class="py-docstring"> negotiation in server mode. It's a rather obscure option and can be</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"><tt class="py-docstring"> safely ignored.</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"><tt class="py-docstring"> In server mode, the remote client may request "group-exchange" key</tt> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"><tt class="py-docstring"> negotiation, which asks the server to send a random prime number that</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"><tt class="py-docstring"> fits certain criteria. These primes are pretty difficult to compute,</tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"><tt class="py-docstring"> so they can't be generated on demand. But many systems contain a file</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"><tt class="py-docstring"> of suitable primes (usually named something like C{/etc/ssh/moduli}).</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"><tt class="py-docstring"> If you call C{load_server_moduli} and it returns C{True}, then this</tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-docstring"> file of primes has been loaded and we will support "group-exchange" in</tt> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-docstring"> server mode. Otherwise server mode will just claim that it doesn't</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"><tt class="py-docstring"> support that method of key negotiation.</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: optional path to the moduli file, if you happen to</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-docstring"> know that it's not in a standard location.</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if a moduli file was successfully loaded; False</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> otherwise.</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"><tt class="py-docstring"> @note: This has no effect when used in client mode.</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt id="link-122" class="py-name" targets="Class paramiko.Transport=paramiko.Transport-class.html"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-122', 'Transport', 'link-122');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-123', '_modulus_pack', 'link-94');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt id="link-124" class="py-name"><a title="paramiko.primes.ModulusPack" class="py-name" href="#" onclick="return doclink('link-124', 'ModulusPack', 'link-30');">ModulusPack</a></tt><tt class="py-op">(</tt><tt id="link-125" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-126', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+</div><a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_server_key"></a><div id="Transport.get_server_key-def"><a name="L542"></a><tt class="py-lineno"> 542</tt> <a class="py-toggle" href="#" id="Transport.get_server_key-toggle" onclick="return toggle('Transport.get_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_server_key">get_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_server_key-expanded"><a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"><tt class="py-docstring"> Return the active host key, in server mode. After negotiating with the</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"><tt class="py-docstring"> client, this method will return the negotiated host key. If only one</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"><tt class="py-docstring"> type of host key was set with L{add_server_key}, that's the only key</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"><tt class="py-docstring"> that will ever be returned. But in cases where you have set more than</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"><tt class="py-docstring"> one type of host key (for example, an RSA key and a DSS key), the key</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"><tt class="py-docstring"> type will be negotiated by the client, and this method will return the</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"><tt class="py-docstring"> key of the type agreed on. If the host key has not been negotiated</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"><tt class="py-docstring"> yet, C{None} is returned. In client mode, the behavior is undefined.</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"><tt class="py-docstring"> @return: host key of the type negotiated by the client, or C{None}.</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">]</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> </tt>
+<a name="Transport.load_server_moduli"></a><div id="Transport.load_server_moduli-def"><a name="L562"></a><tt class="py-lineno"> 562</tt> <a class="py-toggle" href="#" id="Transport.load_server_moduli-toggle" onclick="return toggle('Transport.load_server_moduli');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#load_server_moduli">load_server_moduli</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.load_server_moduli-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.load_server_moduli-expanded"><a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"> I{(optional)}</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> Load a file of prime moduli for use in doing group-exchange key</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"> negotiation in server mode. It's a rather obscure option and can be</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"><tt class="py-docstring"> safely ignored.</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"><tt class="py-docstring"> In server mode, the remote client may request "group-exchange" key</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"><tt class="py-docstring"> negotiation, which asks the server to send a random prime number that</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"><tt class="py-docstring"> fits certain criteria. These primes are pretty difficult to compute,</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"> so they can't be generated on demand. But many systems contain a file</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> of suitable primes (usually named something like C{/etc/ssh/moduli}).</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> If you call C{load_server_moduli} and it returns C{True}, then this</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"><tt class="py-docstring"> file of primes has been loaded and we will support "group-exchange" in</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"><tt class="py-docstring"> server mode. Otherwise server mode will just claim that it doesn't</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> support that method of key negotiation.</tt> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: optional path to the moduli file, if you happen to</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"><tt class="py-docstring"> know that it's not in a standard location.</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if a moduli file was successfully loaded; False</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"><tt class="py-docstring"> otherwise.</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"><tt class="py-docstring"> @note: This has no effect when used in client mode.</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt id="link-127" class="py-name" targets="Class paramiko.Transport=paramiko.Transport-class.html"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-127', 'Transport', 'link-127');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-128', '_modulus_pack', 'link-98');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="paramiko.primes.ModulusPack" class="py-name" href="#" onclick="return doclink('link-129', 'ModulusPack', 'link-30');">ModulusPack</a></tt><tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -756,30 +775,30 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-125', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-comment"># places to look for the openssh "moduli" file</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">file_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'/etc/ssh/moduli'</tt><tt class="py-op">,</tt> <tt class="py-string">'/usr/local/etc/moduli'</tt> <tt class="py-op">]</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"> <tt class="py-name">file_list</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fn</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_list</tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-126', 'Transport', 'link-122');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-127', '_modulus_pack', 'link-94');">_modulus_pack</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method paramiko.primes.ModulusPack.read_file()=paramiko.primes.ModulusPack-class.html#read_file"><a title="paramiko.primes.ModulusPack.read_file" class="py-name" href="#" onclick="return doclink('link-128', 'read_file', 'link-128');">read_file</a></tt><tt class="py-op">(</tt><tt class="py-name">fn</tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt class="py-comment"># none succeeded</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-129" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-129', 'Transport', 'link-122');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-130', '_modulus_pack', 'link-94');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt id="link-131" class="py-name" targets="Static Method paramiko.Transport.load_server_moduli()=paramiko.Transport-class.html#load_server_moduli"><a title="paramiko.Transport.load_server_moduli" class="py-name" href="#" onclick="return doclink('link-131', 'load_server_moduli', 'link-131');">load_server_moduli</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="paramiko.Transport.load_server_moduli" class="py-name" href="#" onclick="return doclink('link-132', 'load_server_moduli', 'link-131');">load_server_moduli</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> </tt>
-<a name="Transport.close"></a><div id="Transport.close-def"><a name="L586"></a><tt class="py-lineno"> 586</tt> <a class="py-toggle" href="#" id="Transport.close-toggle" onclick="return toggle('Transport.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.close-expanded"><a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"><tt class="py-docstring"> Close this session, and any open channels that are tied to it.</tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.Agent.close
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-130', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-comment"># places to look for the openssh "moduli" file</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-name">file_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'/etc/ssh/moduli'</tt><tt class="py-op">,</tt> <tt class="py-string">'/usr/local/etc/moduli'</tt> <tt class="py-op">]</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">file_list</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fn</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_list</tt><tt class="py-op">:</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt id="link-131" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-131', 'Transport', 'link-127');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-132', '_modulus_pack', 'link-98');">_modulus_pack</a></tt><tt class="py-op">.</tt><tt id="link-133" class="py-name" targets="Method paramiko.primes.ModulusPack.read_file()=paramiko.primes.ModulusPack-class.html#read_file"><a title="paramiko.primes.ModulusPack.read_file" class="py-name" href="#" onclick="return doclink('link-133', 'read_file', 'link-133');">read_file</a></tt><tt class="py-op">(</tt><tt class="py-name">fn</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-comment"># none succeeded</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt id="link-134" class="py-name"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-134', 'Transport', 'link-127');">Transport</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-135', '_modulus_pack', 'link-98');">_modulus_pack</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt id="link-136" class="py-name" targets="Static Method paramiko.Transport.load_server_moduli()=paramiko.Transport-class.html#load_server_moduli"><a title="paramiko.Transport.load_server_moduli" class="py-name" href="#" onclick="return doclink('link-136', 'load_server_moduli', 'link-136');">load_server_moduli</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-137" class="py-name"><a title="paramiko.Transport.load_server_moduli" class="py-name" href="#" onclick="return doclink('link-137', 'load_server_moduli', 'link-136');">load_server_moduli</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> </tt>
+<a name="Transport.close"></a><div id="Transport.close-def"><a name="L604"></a><tt class="py-lineno"> 604</tt> <a class="py-toggle" href="#" id="Transport.close-toggle" onclick="return toggle('Transport.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.close-expanded"><a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> Close this session, and any open channels that are tied to it.</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -790,114 +809,114 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-133', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="paramiko.HostKeys.values
-paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-134', 'values', 'link-73');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_unlink</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_remote_server_key"></a><div id="Transport.get_remote_server_key-def"><a name="L598"></a><tt class="py-lineno"> 598</tt> <a class="py-toggle" href="#" id="Transport.get_remote_server_key-toggle" onclick="return toggle('Transport.get_remote_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_remote_server_key">get_remote_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_remote_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_remote_server_key-expanded"><a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"><tt class="py-docstring"> Return the host key of the server (in client mode).</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"><tt class="py-docstring"> @note: Previously this call returned a tuple of (key type, key string).</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"><tt class="py-docstring"> You can get the same effect by calling</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"><tt class="py-docstring"> L{PKey.get_name &lt;pkey.PKey.get_name&gt;} for the key type, and</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> C{str(key)} for the key string.</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if no session is currently active.</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"><tt class="py-docstring"> @return: public key of the remote server</tt> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-135" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-135', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> </tt>
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-138', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="paramiko.HostKeys.values
+paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-139', 'values', 'link-77');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_unlink</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> </tt>
-<a name="Transport.is_active"></a><div id="Transport.is_active-def"><a name="L616"></a><tt class="py-lineno"> 616</tt> <a class="py-toggle" href="#" id="Transport.is_active-toggle" onclick="return toggle('Transport.is_active');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#is_active">is_active</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.is_active-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.is_active-expanded"><a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> Return true if this session is active (open).</tt> </tt>
+<a name="Transport.get_remote_server_key"></a><div id="Transport.get_remote_server_key-def"><a name="L616"></a><tt class="py-lineno"> 616</tt> <a class="py-toggle" href="#" id="Transport.get_remote_server_key-toggle" onclick="return toggle('Transport.get_remote_server_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_remote_server_key">get_remote_server_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_remote_server_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_remote_server_key-expanded"><a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> Return the host key of the server (in client mode).</tt> </tt>
<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if the session is still active (open); False if the</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"> session is closed</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> </tt>
-</div><a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> </tt>
-<a name="Transport.open_session"></a><div id="Transport.open_session-def"><a name="L626"></a><tt class="py-lineno"> 626</tt> <a class="py-toggle" href="#" id="Transport.open_session-toggle" onclick="return toggle('Transport.open_session');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_session">open_session</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.open_session-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_session-expanded"><a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the server, of type C{"session"}. This</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"><tt class="py-docstring"> is just an alias for C{open_channel('session')}.</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel}</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name" targets="Method paramiko.Transport.open_channel()=paramiko.Transport-class.html#open_channel"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-136', 'open_channel', 'link-136');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'session'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> </tt>
-<a name="Transport.open_x11_channel"></a><div id="Transport.open_x11_channel-def"><a name="L639"></a><tt class="py-lineno"> 639</tt> <a class="py-toggle" href="#" id="Transport.open_x11_channel-toggle" onclick="return toggle('Transport.open_x11_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_x11_channel">open_x11_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.open_x11_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_x11_channel-expanded"><a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the client, of type C{"x11"}. This</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> is just an alias for C{open_channel('x11', src_addr=src_addr)}.</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: the source address of the x11 server (port is the</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"><tt class="py-docstring"> x11 port, ie. 6010)</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"><tt class="py-docstring"> @type src_addr: (str, int)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel}</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-137', 'open_channel', 'link-136');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'x11'</tt><tt class="py-op">,</tt> <tt class="py-name">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">src_addr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> </tt>
-<a name="Transport.open_forwarded_tcpip_channel"></a><div id="Transport.open_forwarded_tcpip_channel-def"><a name="L655"></a><tt class="py-lineno"> 655</tt> <a class="py-toggle" href="#" id="Transport.open_forwarded_tcpip_channel-toggle" onclick="return toggle('Transport.open_forwarded_tcpip_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_forwarded_tcpip_channel">open_forwarded_tcpip_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-param">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.open_forwarded_tcpip_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_forwarded_tcpip_channel-expanded"><a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel back to the client, of type C{"forwarded-tcpip"}.</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> This is used after a client has requested port forwarding, for sending</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> incoming connections back to the client.</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: originator's address</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> @param src_port: originator's port</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_addr: local (server) connected address</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_port: local (server) connected port</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-138', 'open_channel', 'link-136');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-name">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">,</tt> <tt class="py-name">src_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> </tt>
-<a name="Transport.open_channel"></a><div id="Transport.open_channel-def"><a name="L668"></a><tt class="py-lineno"> 668</tt> <a class="py-toggle" href="#" id="Transport.open_channel-toggle" onclick="return toggle('Transport.open_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_channel">open_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">kind</tt><tt class="py-op">,</tt> <tt class="py-param">dest_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.open_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_channel-expanded"><a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the server. L{Channel}s are socket-like</tt> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"><tt class="py-docstring"> objects used for the actual transfer of data across the session.</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"> You may only request a channel after negotiating encryption (using</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> L{connect} or L{start_client}) and authenticating.</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: the kind of channel requested (usually C{"session"},</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"> C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"})</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_addr: the destination address of this port forwarding,</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> if C{kind} is C{"forwarded-tcpip"} or C{"direct-tcpip"} (ignored</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> for other channel types)</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"> @type dest_addr: (str, int)</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: the source address of this port forwarding, if</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> C{kind} is C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"}</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> @type src_addr: (str, int)</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel} on success</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-comment"># don't bother trying to allocate a channel</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-139', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-140', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-141" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN,Variable paramiko.channel.MSG_CHANNEL_OPEN=paramiko.channel-module.html#MSG_CHANNEL_OPEN,Variable paramiko.client.MSG_CHANNEL_OPEN=paramiko.client-module.html#MSG_CHANNEL_OPEN,Variable paramiko.common.MSG_CHANNEL_OPEN=paramiko.common-module.html#MSG_CHANNEL_OPEN,Variable paramiko.dsskey.MSG_CHANNEL_OPEN=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN,Variable paramiko.packet.MSG_CHANNEL_OPEN=paramiko.packet-module.html#MSG_CHANNEL_OPEN,Variable paramiko.pkey.MSG_CHANNEL_OPEN=paramiko.pkey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.rsakey.MSG_CHANNEL_OPEN=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.server.MSG_CHANNEL_OPEN=paramiko.server-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp.MSG_CHANNEL_OPEN=paramiko.sftp-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN,Variable paramiko.transport.MSG_CHANNEL_OPEN=paramiko.transport-module.html#MSG_CHANNEL_OPEN,Variable paramiko.util.MSG_CHANNEL_OPEN=paramiko.util-module.html#MSG_CHANNEL_OPEN"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> @note: Previously this call returned a tuple of (key type, key string).</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"> You can get the same effect by calling</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"><tt class="py-docstring"> L{PKey.get_name &lt;pkey.PKey.get_name&gt;} for the key type, and</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"><tt class="py-docstring"> C{str(key)} for the key string.</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if no session is currently active.</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"><tt class="py-docstring"> @return: public key of the remote server</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-140" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-140', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> </tt>
+</div><a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> </tt>
+<a name="Transport.is_active"></a><div id="Transport.is_active-def"><a name="L634"></a><tt class="py-lineno"> 634</tt> <a class="py-toggle" href="#" id="Transport.is_active-toggle" onclick="return toggle('Transport.is_active');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#is_active">is_active</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.is_active-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.is_active-expanded"><a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"> Return true if this session is active (open).</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if the session is still active (open); False if the</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"><tt class="py-docstring"> session is closed</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> </tt>
+</div><a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> </tt>
+<a name="Transport.open_session"></a><div id="Transport.open_session-def"><a name="L644"></a><tt class="py-lineno"> 644</tt> <a class="py-toggle" href="#" id="Transport.open_session-toggle" onclick="return toggle('Transport.open_session');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_session">open_session</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.open_session-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_session-expanded"><a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the server, of type C{"session"}. This</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"><tt class="py-docstring"> is just an alias for C{open_channel('session')}.</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel}</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name" targets="Method paramiko.Transport.open_channel()=paramiko.Transport-class.html#open_channel"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-141', 'open_channel', 'link-141');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'session'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> </tt>
+<a name="Transport.open_x11_channel"></a><div id="Transport.open_x11_channel-def"><a name="L657"></a><tt class="py-lineno"> 657</tt> <a class="py-toggle" href="#" id="Transport.open_x11_channel-toggle" onclick="return toggle('Transport.open_x11_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_x11_channel">open_x11_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.open_x11_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_x11_channel-expanded"><a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the client, of type C{"x11"}. This</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> is just an alias for C{open_channel('x11', src_addr=src_addr)}.</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: the source address of the x11 server (port is the</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"><tt class="py-docstring"> x11 port, ie. 6010)</tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"> @type src_addr: (str, int)</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel}</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-142', 'open_channel', 'link-141');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'x11'</tt><tt class="py-op">,</tt> <tt class="py-name">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">src_addr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> </tt>
+<a name="Transport.open_forwarded_tcpip_channel"></a><div id="Transport.open_forwarded_tcpip_channel-def"><a name="L673"></a><tt class="py-lineno"> 673</tt> <a class="py-toggle" href="#" id="Transport.open_forwarded_tcpip_channel-toggle" onclick="return toggle('Transport.open_forwarded_tcpip_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_forwarded_tcpip_channel">open_forwarded_tcpip_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-param">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.open_forwarded_tcpip_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_forwarded_tcpip_channel-expanded"><a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel back to the client, of type C{"forwarded-tcpip"}.</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"> This is used after a client has requested port forwarding, for sending</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"><tt class="py-docstring"> incoming connections back to the client.</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: originator's address</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> @param src_port: originator's port</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_addr: local (server) connected address</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_port: local (server) connected port</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="paramiko.Transport.open_channel" class="py-name" href="#" onclick="return doclink('link-143', 'open_channel', 'link-141');">open_channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-name">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">,</tt> <tt class="py-name">src_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"> </tt>
+<a name="Transport.open_channel"></a><div id="Transport.open_channel-def"><a name="L686"></a><tt class="py-lineno"> 686</tt> <a class="py-toggle" href="#" id="Transport.open_channel-toggle" onclick="return toggle('Transport.open_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_channel">open_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">kind</tt><tt class="py-op">,</tt> <tt class="py-param">dest_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">src_addr</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.open_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_channel-expanded"><a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"><tt class="py-docstring"> Request a new channel to the server. L{Channel}s are socket-like</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"><tt class="py-docstring"> objects used for the actual transfer of data across the session.</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"><tt class="py-docstring"> You may only request a channel after negotiating encryption (using</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"><tt class="py-docstring"> L{connect} or L{start_client}) and authenticating.</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: the kind of channel requested (usually C{"session"},</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"><tt class="py-docstring"> C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"})</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"><tt class="py-docstring"> @param dest_addr: the destination address of this port forwarding,</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"><tt class="py-docstring"> if C{kind} is C{"forwarded-tcpip"} or C{"direct-tcpip"} (ignored</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"><tt class="py-docstring"> for other channel types)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"><tt class="py-docstring"> @type dest_addr: (str, int)</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"><tt class="py-docstring"> @param src_addr: the source address of this port forwarding, if</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-docstring"> C{kind} is C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"}</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> @type src_addr: (str, int)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{Channel} on success</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the request is rejected or the session ends</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"><tt class="py-docstring"> prematurely</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-comment"># don't bother trying to allocate a channel</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-144', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method paramiko.Message.add_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-145', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-146" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN,Variable paramiko.channel.MSG_CHANNEL_OPEN=paramiko.channel-module.html#MSG_CHANNEL_OPEN,Variable paramiko.client.MSG_CHANNEL_OPEN=paramiko.client-module.html#MSG_CHANNEL_OPEN,Variable paramiko.common.MSG_CHANNEL_OPEN=paramiko.common-module.html#MSG_CHANNEL_OPEN,Variable paramiko.dsskey.MSG_CHANNEL_OPEN=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN,Variable paramiko.packet.MSG_CHANNEL_OPEN=paramiko.packet-module.html#MSG_CHANNEL_OPEN,Variable paramiko.pkey.MSG_CHANNEL_OPEN=paramiko.pkey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.rsakey.MSG_CHANNEL_OPEN=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN,Variable paramiko.server.MSG_CHANNEL_OPEN=paramiko.server-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp.MSG_CHANNEL_OPEN=paramiko.sftp-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN,Variable paramiko.transport.MSG_CHANNEL_OPEN=paramiko.transport-module.html#MSG_CHANNEL_OPEN,Variable paramiko.util.MSG_CHANNEL_OPEN=paramiko.util-module.html#MSG_CHANNEL_OPEN"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN
paramiko.channel.MSG_CHANNEL_OPEN
paramiko.client.MSG_CHANNEL_OPEN
paramiko.common.MSG_CHANNEL_OPEN
@@ -917,133 +936,133 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN
paramiko.sftp_server.MSG_CHANNEL_OPEN
paramiko.sftp_si.MSG_CHANNEL_OPEN
paramiko.transport.MSG_CHANNEL_OPEN
-paramiko.util.MSG_CHANNEL_OPEN" class="py-name" href="#" onclick="return doclink('link-141', 'MSG_CHANNEL_OPEN', 'link-141');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-142', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-143', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-144', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-145', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'direct-tcpip'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-146', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-147', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-148', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-149', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">:</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-150', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-151', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-152', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method paramiko.SFTPClient.put()=paramiko.SFTPClient-class.html#put,Method paramiko.transport.ChannelMap.put()=paramiko.transport.ChannelMap-class.html#put"><a title="paramiko.SFTPClient.put
-paramiko.transport.ChannelMap.put" class="py-name" href="#" onclick="return doclink('link-153', 'put', 'link-153');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_transport</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_window</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-154', 'get_exception', 'link-113');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-155" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-155', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open channel.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-156', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-157', 'get_exception', 'link-113');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-158" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-158', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open channel.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-</div><a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> </tt>
-<a name="Transport.request_port_forward"></a><div id="Transport.request_port_forward-def"><a name="L738"></a><tt class="py-lineno"> 738</tt> <a class="py-toggle" href="#" id="Transport.request_port_forward-toggle" onclick="return toggle('Transport.request_port_forward');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#request_port_forward">request_port_forward</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.request_port_forward-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.request_port_forward-expanded"><a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"><tt class="py-docstring"> Ask the server to forward TCP connections from a listening port on</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"><tt class="py-docstring"> the server, across this SSH session.</tt> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"><tt class="py-docstring"> If a handler is given, that handler is called from a different thread</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"><tt class="py-docstring"> whenever a forwarded connection arrives. The handler parameters are::</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"><tt class="py-docstring"> handler(channel, (origin_addr, origin_port), (server_addr, server_port))</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> where C{server_addr} and C{server_port} are the address and port that</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> the server was listening on.</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> If no handler is set, the default behavior is to send new incoming</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> forwarded connections into the accept queue, to be picked up via</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> L{accept}.</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"> @param address: the address to bind when forwarding</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the port to forward, or 0 to ask the server to allocate</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> any port</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: optional handler for incoming forwarded connections</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: function(Channel, (str, int), (str, int))</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"><tt class="py-docstring"> @return: the port # allocated by the server</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server refused the TCP forward request</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-159" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-159', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'SSH session not active'</tt><tt class="py-op">)</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">)</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-name">response</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Method paramiko.Transport.global_request()=paramiko.Transport-class.html#global_request"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-160', 'global_request', 'link-160');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'tcpip-forward'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">response</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-161" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-161', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'TCP forwarding request denied'</tt><tt class="py-op">)</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">port</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">response</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-162', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">default_handler</tt><tt class="py-op">(</tt><tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-param">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-163', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-name">handler</tt> <tt class="py-op">=</tt> <tt class="py-name">default_handler</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">port</tt> </tt>
-</div><a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> </tt>
-<a name="Transport.cancel_port_forward"></a><div id="Transport.cancel_port_forward-def"><a name="L783"></a><tt class="py-lineno"> 783</tt> <a class="py-toggle" href="#" id="Transport.cancel_port_forward-toggle" onclick="return toggle('Transport.cancel_port_forward');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#cancel_port_forward">cancel_port_forward</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.cancel_port_forward-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.cancel_port_forward-expanded"><a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"> Ask the server to cancel a previous port-forwarding request. No more</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"><tt class="py-docstring"> connections to the given address &amp; port will be forwarded across this</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"><tt class="py-docstring"> ssh connection.</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"><tt class="py-docstring"> @param address: the address to stop forwarding</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the port to stop forwarding</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-164', 'global_request', 'link-160');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'cancel-tcpip-forward'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> </tt>
-<a name="Transport.open_sftp_client"></a><div id="Transport.open_sftp_client-def"><a name="L799"></a><tt class="py-lineno"> 799</tt> <a class="py-toggle" href="#" id="Transport.open_sftp_client-toggle" onclick="return toggle('Transport.open_sftp_client');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_sftp_client">open_sftp_client</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.open_sftp_client-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_sftp_client-expanded"><a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client channel from an open transport. On success,</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"><tt class="py-docstring"> an SFTP session will be opened with the remote host, and a new</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"><tt class="py-docstring"> SFTPClient object will be returned.</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{SFTPClient} object, referring to an sftp session</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"> (channel) across this transport</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-165" class="py-name"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-165', 'SFTPClient', 'link-39');">SFTPClient</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Class Method paramiko.SFTPClient.from_transport()=paramiko.SFTPClient-class.html#from_transport"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-166', 'from_transport', 'link-166');">from_transport</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> </tt>
-<a name="Transport.send_ignore"></a><div id="Transport.send_ignore-def"><a name="L811"></a><tt class="py-lineno"> 811</tt> <a class="py-toggle" href="#" id="Transport.send_ignore-toggle" onclick="return toggle('Transport.send_ignore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#send_ignore">send_ignore</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">bytes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.send_ignore-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.send_ignore-expanded"><a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"> Send a junk packet across the encrypted link. This is sometimes used</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> to add "noise" to a connection to confuse would-be attackers. It can</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> also be used as a keep-alive for long lived connections traversing</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"> firewalls.</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> @param bytes: the number of random bytes to send in the payload of the</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> ignored packet -- defaults to a random number from 10 to 41.</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"><tt class="py-docstring"> @type bytes: int</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-167" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-167', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-168', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-169" class="py-name" targets="Variable paramiko.auth_handler.MSG_IGNORE=paramiko.auth_handler-module.html#MSG_IGNORE,Variable paramiko.channel.MSG_IGNORE=paramiko.channel-module.html#MSG_IGNORE,Variable paramiko.client.MSG_IGNORE=paramiko.client-module.html#MSG_IGNORE,Variable paramiko.common.MSG_IGNORE=paramiko.common-module.html#MSG_IGNORE,Variable paramiko.dsskey.MSG_IGNORE=paramiko.dsskey-module.html#MSG_IGNORE,Variable paramiko.hostkeys.MSG_IGNORE=paramiko.hostkeys-module.html#MSG_IGNORE,Variable paramiko.kex_gex.MSG_IGNORE=paramiko.kex_gex-module.html#MSG_IGNORE,Variable paramiko.kex_group1.MSG_IGNORE=paramiko.kex_group1-module.html#MSG_IGNORE,Variable paramiko.packet.MSG_IGNORE=paramiko.packet-module.html#MSG_IGNORE,Variable paramiko.pkey.MSG_IGNORE=paramiko.pkey-module.html#MSG_IGNORE,Variable paramiko.rsakey.MSG_IGNORE=paramiko.rsakey-module.html#MSG_IGNORE,Variable paramiko.server.MSG_IGNORE=paramiko.server-module.html#MSG_IGNORE,Variable paramiko.sftp.MSG_IGNORE=paramiko.sftp-module.html#MSG_IGNORE,Variable paramiko.sftp_attr.MSG_IGNORE=paramiko.sftp_attr-module.html#MSG_IGNORE,Variable paramiko.sftp_client.MSG_IGNORE=paramiko.sftp_client-module.html#MSG_IGNORE,Variable paramiko.sftp_file.MSG_IGNORE=paramiko.sftp_file-module.html#MSG_IGNORE,Variable paramiko.sftp_handle.MSG_IGNORE=paramiko.sftp_handle-module.html#MSG_IGNORE,Variable paramiko.sftp_server.MSG_IGNORE=paramiko.sftp_server-module.html#MSG_IGNORE,Variable paramiko.sftp_si.MSG_IGNORE=paramiko.sftp_si-module.html#MSG_IGNORE,Variable paramiko.transport.MSG_IGNORE=paramiko.transport-module.html#MSG_IGNORE,Variable paramiko.util.MSG_IGNORE=paramiko.util-module.html#MSG_IGNORE"><a title="paramiko.auth_handler.MSG_IGNORE
+paramiko.util.MSG_CHANNEL_OPEN" class="py-name" href="#" onclick="return doclink('link-146', 'MSG_CHANNEL_OPEN', 'link-146');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name" targets="Method paramiko.Message.add_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-147', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method paramiko.Message.add_int()=paramiko.Message-class.html#add_int"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-148', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-149', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-150', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'direct-tcpip'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-151', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-152', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-153', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-154', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">:</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-155', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-156', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">src_addr</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-157', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method paramiko.SFTPClient.put()=paramiko.SFTPClient-class.html#put,Method paramiko.transport.ChannelMap.put()=paramiko.transport.ChannelMap-class.html#put"><a title="paramiko.SFTPClient.put
+paramiko.transport.ChannelMap.put" class="py-name" href="#" onclick="return doclink('link-158', 'put', 'link-158');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_transport</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_window</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-159', 'get_exception', 'link-118');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-160', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open channel.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-161', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-162', 'get_exception', 'link-118');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-163" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-163', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open channel.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+</div><a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> </tt>
+<a name="Transport.request_port_forward"></a><div id="Transport.request_port_forward-def"><a name="L756"></a><tt class="py-lineno"> 756</tt> <a class="py-toggle" href="#" id="Transport.request_port_forward-toggle" onclick="return toggle('Transport.request_port_forward');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#request_port_forward">request_port_forward</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.request_port_forward-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.request_port_forward-expanded"><a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> Ask the server to forward TCP connections from a listening port on</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> the server, across this SSH session.</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"><tt class="py-docstring"> If a handler is given, that handler is called from a different thread</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"><tt class="py-docstring"> whenever a forwarded connection arrives. The handler parameters are::</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-docstring"> handler(channel, (origin_addr, origin_port), (server_addr, server_port))</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> where C{server_addr} and C{server_port} are the address and port that</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> the server was listening on.</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"><tt class="py-docstring"> If no handler is set, the default behavior is to send new incoming</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"><tt class="py-docstring"> forwarded connections into the accept queue, to be picked up via</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"><tt class="py-docstring"> L{accept}.</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> @param address: the address to bind when forwarding</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the port to forward, or 0 to ask the server to allocate</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> any port</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: optional handler for incoming forwarded connections</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: function(Channel, (str, int), (str, int))</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"><tt class="py-docstring"> @return: the port # allocated by the server</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the server refused the TCP forward request</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-164" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-164', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'SSH session not active'</tt><tt class="py-op">)</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">)</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-name">response</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Method paramiko.Transport.global_request()=paramiko.Transport-class.html#global_request"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-165', 'global_request', 'link-165');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'tcpip-forward'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">response</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-166" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-166', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'TCP forwarding request denied'</tt><tt class="py-op">)</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">port</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">response</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Method paramiko.Message.get_int()=paramiko.Message-class.html#get_int"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-167', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">default_handler</tt><tt class="py-op">(</tt><tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-param">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt id="link-168" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-168', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> <tt class="py-name">handler</tt> <tt class="py-op">=</tt> <tt class="py-name">default_handler</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">port</tt> </tt>
+</div><a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> </tt>
+<a name="Transport.cancel_port_forward"></a><div id="Transport.cancel_port_forward-def"><a name="L801"></a><tt class="py-lineno"> 801</tt> <a class="py-toggle" href="#" id="Transport.cancel_port_forward-toggle" onclick="return toggle('Transport.cancel_port_forward');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#cancel_port_forward">cancel_port_forward</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.cancel_port_forward-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.cancel_port_forward-expanded"><a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"><tt class="py-docstring"> Ask the server to cancel a previous port-forwarding request. No more</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"><tt class="py-docstring"> connections to the given address &amp; port will be forwarded across this</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> ssh connection.</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> @param address: the address to stop forwarding</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the port to stop forwarding</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-169', 'global_request', 'link-165');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'cancel-tcpip-forward'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> </tt>
+<a name="Transport.open_sftp_client"></a><div id="Transport.open_sftp_client-def"><a name="L817"></a><tt class="py-lineno"> 817</tt> <a class="py-toggle" href="#" id="Transport.open_sftp_client-toggle" onclick="return toggle('Transport.open_sftp_client');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#open_sftp_client">open_sftp_client</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.open_sftp_client-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.open_sftp_client-expanded"><a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> Create an SFTP client channel from an open transport. On success,</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"><tt class="py-docstring"> an SFTP session will be opened with the remote host, and a new</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"><tt class="py-docstring"> SFTPClient object will be returned.</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{SFTPClient} object, referring to an sftp session</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> (channel) across this transport</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPClient}</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-170" class="py-name"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-170', 'SFTPClient', 'link-39');">SFTPClient</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Class Method paramiko.SFTPClient.from_transport()=paramiko.SFTPClient-class.html#from_transport"><a title="paramiko.SFTPClient.from_transport" class="py-name" href="#" onclick="return doclink('link-171', 'from_transport', 'link-171');">from_transport</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> </tt>
+<a name="Transport.send_ignore"></a><div id="Transport.send_ignore-def"><a name="L829"></a><tt class="py-lineno"> 829</tt> <a class="py-toggle" href="#" id="Transport.send_ignore-toggle" onclick="return toggle('Transport.send_ignore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#send_ignore">send_ignore</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">bytes</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.send_ignore-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.send_ignore-expanded"><a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> Send a junk packet across the encrypted link. This is sometimes used</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> to add "noise" to a connection to confuse would-be attackers. It can</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> also be used as a keep-alive for long lived connections traversing</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> firewalls.</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"><tt class="py-docstring"> @param bytes: the number of random bytes to send in the payload of the</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> ignored packet -- defaults to a random number from 10 to 41.</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> @type bytes: int</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-172', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-173', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-174" class="py-name" targets="Variable paramiko.auth_handler.MSG_IGNORE=paramiko.auth_handler-module.html#MSG_IGNORE,Variable paramiko.channel.MSG_IGNORE=paramiko.channel-module.html#MSG_IGNORE,Variable paramiko.client.MSG_IGNORE=paramiko.client-module.html#MSG_IGNORE,Variable paramiko.common.MSG_IGNORE=paramiko.common-module.html#MSG_IGNORE,Variable paramiko.dsskey.MSG_IGNORE=paramiko.dsskey-module.html#MSG_IGNORE,Variable paramiko.hostkeys.MSG_IGNORE=paramiko.hostkeys-module.html#MSG_IGNORE,Variable paramiko.kex_gex.MSG_IGNORE=paramiko.kex_gex-module.html#MSG_IGNORE,Variable paramiko.kex_group1.MSG_IGNORE=paramiko.kex_group1-module.html#MSG_IGNORE,Variable paramiko.packet.MSG_IGNORE=paramiko.packet-module.html#MSG_IGNORE,Variable paramiko.pkey.MSG_IGNORE=paramiko.pkey-module.html#MSG_IGNORE,Variable paramiko.rsakey.MSG_IGNORE=paramiko.rsakey-module.html#MSG_IGNORE,Variable paramiko.server.MSG_IGNORE=paramiko.server-module.html#MSG_IGNORE,Variable paramiko.sftp.MSG_IGNORE=paramiko.sftp-module.html#MSG_IGNORE,Variable paramiko.sftp_attr.MSG_IGNORE=paramiko.sftp_attr-module.html#MSG_IGNORE,Variable paramiko.sftp_client.MSG_IGNORE=paramiko.sftp_client-module.html#MSG_IGNORE,Variable paramiko.sftp_file.MSG_IGNORE=paramiko.sftp_file-module.html#MSG_IGNORE,Variable paramiko.sftp_handle.MSG_IGNORE=paramiko.sftp_handle-module.html#MSG_IGNORE,Variable paramiko.sftp_server.MSG_IGNORE=paramiko.sftp_server-module.html#MSG_IGNORE,Variable paramiko.sftp_si.MSG_IGNORE=paramiko.sftp_si-module.html#MSG_IGNORE,Variable paramiko.transport.MSG_IGNORE=paramiko.transport-module.html#MSG_IGNORE,Variable paramiko.util.MSG_IGNORE=paramiko.util-module.html#MSG_IGNORE"><a title="paramiko.auth_handler.MSG_IGNORE
paramiko.channel.MSG_IGNORE
paramiko.client.MSG_IGNORE
paramiko.common.MSG_IGNORE
@@ -1063,8 +1082,8 @@ paramiko.sftp_handle.MSG_IGNORE
paramiko.sftp_server.MSG_IGNORE
paramiko.sftp_si.MSG_IGNORE
paramiko.transport.MSG_IGNORE
-paramiko.util.MSG_IGNORE" class="py-name" href="#" onclick="return doclink('link-169', 'MSG_IGNORE', 'link-169');">MSG_IGNORE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt id="link-170" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.MSG_IGNORE" class="py-name" href="#" onclick="return doclink('link-174', 'MSG_IGNORE', 'link-174');">MSG_IGNORE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt id="link-175" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -1084,9 +1103,9 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-170', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-171', 'stir', 'link-171');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bytes</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> <tt class="py-name">bytes</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-175', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-176" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.stir()=paramiko.rng.StrongLockingRandomPool-class.html#stir"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-176', 'stir', 'link-176');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bytes</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-name">bytes</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt id="link-177" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -1106,9 +1125,9 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-172', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-173', 'get_bytes', 'link-173');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">10</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Method paramiko.Message.add_bytes()=paramiko.Message-class.html#add_bytes"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-174', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-177', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-178" class="py-name" targets="Method paramiko.Message.get_bytes()=paramiko.Message-class.html#get_bytes,Method paramiko.rng.StrongLockingRandomPool.get_bytes()=paramiko.rng.StrongLockingRandomPool-class.html#get_bytes"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-178', 'get_bytes', 'link-178');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">10</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name" targets="Method paramiko.Message.add_bytes()=paramiko.Message-class.html#add_bytes"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-179', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -1128,71 +1147,71 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-175', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-176', 'get_bytes', 'link-173');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> </tt>
-<a name="Transport.renegotiate_keys"></a><div id="Transport.renegotiate_keys-def"><a name="L830"></a><tt class="py-lineno"> 830</tt> <a class="py-toggle" href="#" id="Transport.renegotiate_keys-toggle" onclick="return toggle('Transport.renegotiate_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#renegotiate_keys">renegotiate_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.renegotiate_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.renegotiate_keys-expanded"><a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> Force this session to switch to new keys. Normally this is done</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> automatically after the session hits a certain number of packets or</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> bytes sent or received, but this method gives you the option of forcing</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"><tt class="py-docstring"> new keys whenever you want. Negotiating new keys causes a pause in</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"><tt class="py-docstring"> traffic both ways as the two sides swap keys and do computations. This</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> method returns when the session has switched to new keys.</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key renegotiation failed (which causes the</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"><tt class="py-docstring"> session to end)</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-177', 'get_exception', 'link-113');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-178" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-178', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> </tt>
-<a name="Transport.set_keepalive"></a><div id="Transport.set_keepalive-def"><a name="L855"></a><tt class="py-lineno"> 855</tt> <a class="py-toggle" href="#" id="Transport.set_keepalive-toggle" onclick="return toggle('Transport.set_keepalive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_keepalive">set_keepalive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">interval</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.set_keepalive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_keepalive-expanded"><a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off keepalive packets (default is off). If this is set, after</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"><tt class="py-docstring"> C{interval} seconds without sending any data over the connection, a</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"> "keepalive" packet will be sent (and ignored by the remote host). This</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"><tt class="py-docstring"> can be useful to keep connections alive over a NAT, for example.</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt class="py-docstring"> @param interval: seconds to wait before sending a keepalive packet (or</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"><tt class="py-docstring"> 0 to disable keepalives).</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"><tt class="py-docstring"> @type interval: int</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name" targets="Method paramiko.Transport.set_keepalive()=paramiko.Transport-class.html#set_keepalive"><a title="paramiko.Transport.set_keepalive" class="py-name" href="#" onclick="return doclink('link-179', 'set_keepalive', 'link-179');">set_keepalive</a></tt><tt class="py-op">(</tt><tt class="py-name">interval</tt><tt class="py-op">,</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">=</tt><tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-180', 'global_request', 'link-160');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'keepalive@lag.net'</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> </tt>
-<a name="Transport.global_request"></a><div id="Transport.global_request-def"><a name="L869"></a><tt class="py-lineno"> 869</tt> <a class="py-toggle" href="#" id="Transport.global_request-toggle" onclick="return toggle('Transport.global_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#global_request">global_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">kind</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.global_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.global_request-expanded"><a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"><tt class="py-docstring"> Make a global request to the remote host. These are normally</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"><tt class="py-docstring"> extensions to the SSH2 protocol.</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: name of the request.</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"> @param data: an optional tuple containing additional data to attach</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"> to the request.</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> @type data: tuple</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> @param wait: C{True} if this method should not return until a response</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> is received; C{False} otherwise.</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> @type wait: bool</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> @return: a L{Message} containing possible additional data if the</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> request was successful (or an empty L{Message} if C{wait} was</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"> C{False}); C{None} if the request was denied.</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Message}</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">wait</tt><tt class="py-op">:</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-181" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-181', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-182', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-183" class="py-name" targets="Variable paramiko.auth_handler.MSG_GLOBAL_REQUEST=paramiko.auth_handler-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.channel.MSG_GLOBAL_REQUEST=paramiko.channel-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.client.MSG_GLOBAL_REQUEST=paramiko.client-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.common.MSG_GLOBAL_REQUEST=paramiko.common-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.dsskey.MSG_GLOBAL_REQUEST=paramiko.dsskey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.hostkeys.MSG_GLOBAL_REQUEST=paramiko.hostkeys-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.kex_gex.MSG_GLOBAL_REQUEST=paramiko.kex_gex-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.kex_group1.MSG_GLOBAL_REQUEST=paramiko.kex_group1-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.packet.MSG_GLOBAL_REQUEST=paramiko.packet-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.pkey.MSG_GLOBAL_REQUEST=paramiko.pkey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.rsakey.MSG_GLOBAL_REQUEST=paramiko.rsakey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.server.MSG_GLOBAL_REQUEST=paramiko.server-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp.MSG_GLOBAL_REQUEST=paramiko.sftp-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_attr.MSG_GLOBAL_REQUEST=paramiko.sftp_attr-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_client.MSG_GLOBAL_REQUEST=paramiko.sftp_client-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_file.MSG_GLOBAL_REQUEST=paramiko.sftp_file-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_handle.MSG_GLOBAL_REQUEST=paramiko.sftp_handle-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_server.MSG_GLOBAL_REQUEST=paramiko.sftp_server-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_si.MSG_GLOBAL_REQUEST=paramiko.sftp_si-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.transport.MSG_GLOBAL_REQUEST=paramiko.transport-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.util.MSG_GLOBAL_REQUEST=paramiko.util-module.html#MSG_GLOBAL_REQUEST"><a title="paramiko.auth_handler.MSG_GLOBAL_REQUEST
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-180', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-181', 'get_bytes', 'link-178');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> </tt>
+<a name="Transport.renegotiate_keys"></a><div id="Transport.renegotiate_keys-def"><a name="L848"></a><tt class="py-lineno"> 848</tt> <a class="py-toggle" href="#" id="Transport.renegotiate_keys-toggle" onclick="return toggle('Transport.renegotiate_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#renegotiate_keys">renegotiate_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.renegotiate_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.renegotiate_keys-expanded"><a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"><tt class="py-docstring"> Force this session to switch to new keys. Normally this is done</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"><tt class="py-docstring"> automatically after the session hits a certain number of packets or</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"><tt class="py-docstring"> bytes sent or received, but this method gives you the option of forcing</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"><tt class="py-docstring"> new keys whenever you want. Negotiating new keys causes a pause in</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> traffic both ways as the two sides swap keys and do computations. This</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> method returns when the session has switched to new keys.</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key renegotiation failed (which causes the</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"><tt class="py-docstring"> session to end)</tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-182', 'get_exception', 'link-118');">get_exception</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-183" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-183', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Negotiation failed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> </tt>
+<a name="Transport.set_keepalive"></a><div id="Transport.set_keepalive-def"><a name="L873"></a><tt class="py-lineno"> 873</tt> <a class="py-toggle" href="#" id="Transport.set_keepalive-toggle" onclick="return toggle('Transport.set_keepalive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_keepalive">set_keepalive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">interval</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.set_keepalive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_keepalive-expanded"><a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off keepalive packets (default is off). If this is set, after</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"> C{interval} seconds without sending any data over the connection, a</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"> "keepalive" packet will be sent (and ignored by the remote host). This</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> can be useful to keep connections alive over a NAT, for example.</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> @param interval: seconds to wait before sending a keepalive packet (or</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> 0 to disable keepalives).</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> @type interval: int</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name" targets="Method paramiko.Transport.set_keepalive()=paramiko.Transport-class.html#set_keepalive"><a title="paramiko.Transport.set_keepalive" class="py-name" href="#" onclick="return doclink('link-184', 'set_keepalive', 'link-184');">set_keepalive</a></tt><tt class="py-op">(</tt><tt class="py-name">interval</tt><tt class="py-op">,</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">=</tt><tt class="py-name">weakref</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="paramiko.Transport.global_request" class="py-name" href="#" onclick="return doclink('link-185', 'global_request', 'link-165');">global_request</a></tt><tt class="py-op">(</tt><tt class="py-string">'keepalive@lag.net'</tt><tt class="py-op">,</tt> <tt class="py-name">wait</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> </tt>
+<a name="Transport.global_request"></a><div id="Transport.global_request-def"><a name="L887"></a><tt class="py-lineno"> 887</tt> <a class="py-toggle" href="#" id="Transport.global_request-toggle" onclick="return toggle('Transport.global_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#global_request">global_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">kind</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">wait</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.global_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.global_request-expanded"><a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"> Make a global request to the remote host. These are normally</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> extensions to the SSH2 protocol.</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: name of the request.</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> @param data: an optional tuple containing additional data to attach</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> to the request.</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> @type data: tuple</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"> @param wait: C{True} if this method should not return until a response</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"><tt class="py-docstring"> is received; C{False} otherwise.</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> @type wait: bool</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> @return: a L{Message} containing possible additional data if the</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"><tt class="py-docstring"> request was successful (or an empty L{Message} if C{wait} was</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-docstring"> C{False}); C{None} if the request was denied.</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Message}</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">wait</tt><tt class="py-op">:</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-186" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-186', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-187', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-188" class="py-name" targets="Variable paramiko.auth_handler.MSG_GLOBAL_REQUEST=paramiko.auth_handler-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.channel.MSG_GLOBAL_REQUEST=paramiko.channel-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.client.MSG_GLOBAL_REQUEST=paramiko.client-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.common.MSG_GLOBAL_REQUEST=paramiko.common-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.dsskey.MSG_GLOBAL_REQUEST=paramiko.dsskey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.hostkeys.MSG_GLOBAL_REQUEST=paramiko.hostkeys-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.kex_gex.MSG_GLOBAL_REQUEST=paramiko.kex_gex-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.kex_group1.MSG_GLOBAL_REQUEST=paramiko.kex_group1-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.packet.MSG_GLOBAL_REQUEST=paramiko.packet-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.pkey.MSG_GLOBAL_REQUEST=paramiko.pkey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.rsakey.MSG_GLOBAL_REQUEST=paramiko.rsakey-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.server.MSG_GLOBAL_REQUEST=paramiko.server-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp.MSG_GLOBAL_REQUEST=paramiko.sftp-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_attr.MSG_GLOBAL_REQUEST=paramiko.sftp_attr-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_client.MSG_GLOBAL_REQUEST=paramiko.sftp_client-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_file.MSG_GLOBAL_REQUEST=paramiko.sftp_file-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_handle.MSG_GLOBAL_REQUEST=paramiko.sftp_handle-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_server.MSG_GLOBAL_REQUEST=paramiko.sftp_server-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.sftp_si.MSG_GLOBAL_REQUEST=paramiko.sftp_si-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.transport.MSG_GLOBAL_REQUEST=paramiko.transport-module.html#MSG_GLOBAL_REQUEST,Variable paramiko.util.MSG_GLOBAL_REQUEST=paramiko.util-module.html#MSG_GLOBAL_REQUEST"><a title="paramiko.auth_handler.MSG_GLOBAL_REQUEST
paramiko.channel.MSG_GLOBAL_REQUEST
paramiko.client.MSG_GLOBAL_REQUEST
paramiko.common.MSG_GLOBAL_REQUEST
@@ -1212,13 +1231,13 @@ paramiko.sftp_handle.MSG_GLOBAL_REQUEST
paramiko.sftp_server.MSG_GLOBAL_REQUEST
paramiko.sftp_si.MSG_GLOBAL_REQUEST
paramiko.transport.MSG_GLOBAL_REQUEST
-paramiko.util.MSG_GLOBAL_REQUEST" class="py-name" href="#" onclick="return doclink('link-183', 'MSG_GLOBAL_REQUEST', 'link-183');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-184', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name" targets="Method paramiko.Message.add_boolean()=paramiko.Message-class.html#add_boolean"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-185', 'add_boolean', 'link-185');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">wait</tt><tt class="py-op">)</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
-paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-186', 'add', 'link-186');">add</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-187" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_GLOBAL_REQUEST" class="py-name" href="#" onclick="return doclink('link-188', 'MSG_GLOBAL_REQUEST', 'link-188');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-189', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Method paramiko.Message.add_boolean()=paramiko.Message-class.html#add_boolean"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-190', 'add_boolean', 'link-190');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">wait</tt><tt class="py-op">)</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name" targets="Method paramiko.HostKeys.add()=paramiko.HostKeys-class.html#add,Method paramiko.Message.add()=paramiko.Message-class.html#add"><a title="paramiko.HostKeys.add
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-191', 'add', 'link-191');">add</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-192" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1239,101 +1258,101 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-187', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Sending global request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">wait</tt><tt class="py-op">:</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> </tt>
-</div><a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> </tt>
-<a name="Transport.accept"></a><div id="Transport.accept-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="Transport.accept-toggle" onclick="return toggle('Transport.accept');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#accept">accept</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.accept-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.accept-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"><tt class="py-docstring"> Return the next channel opened by the client over this transport, in</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"><tt class="py-docstring"> server mode. If no channel is opened before the given timeout, C{None}</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> is returned.</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: seconds to wait for a channel, or C{None} to wait</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"><tt class="py-docstring"> forever</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: int</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new Channel opened by the client</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-comment"># timeout</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
-</div><a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> </tt>
-<a name="Transport.connect"></a><div id="Transport.connect-def"><a name="L934"></a><tt class="py-lineno"> 934</tt> <a class="py-toggle" href="#" id="Transport.connect-toggle" onclick="return toggle('Transport.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.connect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.connect-expanded"><a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate an SSH2 session, and optionally verify the server's host key</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"><tt class="py-docstring"> and authenticate using a password or private key. This is a shortcut</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"><tt class="py-docstring"> for L{start_client}, L{get_remote_server_key}, and</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.auth_password} or L{Transport.auth_publickey}. Use those</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"><tt class="py-docstring"> methods if you want more control.</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"><tt class="py-docstring"> You can use this method immediately after creating a Transport to</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"><tt class="py-docstring"> negotiate encryption with a server. If it fails, an exception will be</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"><tt class="py-docstring"> thrown. On success, the method will return cleanly, and an encrypted</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"> session exists. You may immediately call L{open_channel} or</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> L{open_session} to get a L{Channel} object, which is used for data</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> transfer.</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"><tt class="py-docstring"> @note: If you fail to supply a password or private key, this method may</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"><tt class="py-docstring"> succeed, but a subsequent L{open_channel} or L{open_session} call may</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"><tt class="py-docstring"> fail because you haven't authenticated yet.</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"> @param hostkey: the host key expected from the server, or C{None} if</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> you don't want to do host key verification.</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> @type hostkey: L{PKey&lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as.</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"><tt class="py-docstring"> @param password: a password to use for authentication, if you want to</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"> use password authentication; otherwise C{None}.</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"><tt class="py-docstring"> @param pkey: a private key to use for authentication, if you want to</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"><tt class="py-docstring"> use private key authentication; otherwise C{None}.</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"><tt class="py-docstring"> @type pkey: L{PKey&lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the SSH2 negotiation fails, the host key</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"><tt class="py-docstring"> supplied by the server is incorrect, or authentication fails.</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hostkey</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-188', '_preferred_keys', 'link-51');">_preferred_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-192', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Sending global request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_user_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">wait</tt><tt class="py-op">:</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> </tt>
+</div><a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> </tt>
+<a name="Transport.accept"></a><div id="Transport.accept-def"><a name="L925"></a><tt class="py-lineno"> 925</tt> <a class="py-toggle" href="#" id="Transport.accept-toggle" onclick="return toggle('Transport.accept');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#accept">accept</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.accept-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.accept-expanded"><a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> Return the next channel opened by the client over this transport, in</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"> server mode. If no channel is opened before the given timeout, C{None}</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> is returned.</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: seconds to wait for a channel, or C{None} to wait</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"><tt class="py-docstring"> forever</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: int</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new Channel opened by the client</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Channel}</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> <tt class="py-comment"># timeout</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chan</tt> </tt>
+</div><a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> </tt>
+<a name="Transport.connect"></a><div id="Transport.connect-def"><a name="L952"></a><tt class="py-lineno"> 952</tt> <a class="py-toggle" href="#" id="Transport.connect-toggle" onclick="return toggle('Transport.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.connect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.connect-expanded"><a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> Negotiate an SSH2 session, and optionally verify the server's host key</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> and authenticate using a password or private key. This is a shortcut</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"> for L{start_client}, L{get_remote_server_key}, and</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.auth_password} or L{Transport.auth_publickey}. Use those</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"><tt class="py-docstring"> methods if you want more control.</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"><tt class="py-docstring"> You can use this method immediately after creating a Transport to</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"><tt class="py-docstring"> negotiate encryption with a server. If it fails, an exception will be</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"><tt class="py-docstring"> thrown. On success, the method will return cleanly, and an encrypted</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"><tt class="py-docstring"> session exists. You may immediately call L{open_channel} or</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"><tt class="py-docstring"> L{open_session} to get a L{Channel} object, which is used for data</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"><tt class="py-docstring"> transfer.</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"><tt class="py-docstring"> @note: If you fail to supply a password or private key, this method may</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"><tt class="py-docstring"> succeed, but a subsequent L{open_channel} or L{open_session} call may</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"><tt class="py-docstring"> fail because you haven't authenticated yet.</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"><tt class="py-docstring"> @param hostkey: the host key expected from the server, or C{None} if</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"><tt class="py-docstring"> you don't want to do host key verification.</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"><tt class="py-docstring"> @type hostkey: L{PKey&lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as.</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"><tt class="py-docstring"> @param password: a password to use for authentication, if you want to</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"><tt class="py-docstring"> use password authentication; otherwise C{None}.</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-docstring"> @param pkey: a private key to use for authentication, if you want to</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"><tt class="py-docstring"> use private key authentication; otherwise C{None}.</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"><tt class="py-docstring"> @type pkey: L{PKey&lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the SSH2 negotiation fails, the host key</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"><tt class="py-docstring"> supplied by the server is incorrect, or authentication fails.</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hostkey</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-193', '_preferred_keys', 'link-55');">_preferred_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-189', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Method paramiko.Transport.start_client()=paramiko.Transport-class.html#start_client"><a title="paramiko.Transport.start_client" class="py-name" href="#" onclick="return doclink('link-190', 'start_client', 'link-190');">start_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-comment"># check host key if we were given one</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostkey</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name" targets="Method paramiko.Transport.get_remote_server_key()=paramiko.Transport-class.html#get_remote_server_key"><a title="paramiko.Transport.get_remote_server_key" class="py-name" href="#" onclick="return doclink('link-191', 'get_remote_server_key', 'link-191');">get_remote_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-194', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name" targets="Method paramiko.Transport.start_client()=paramiko.Transport-class.html#start_client"><a title="paramiko.Transport.start_client" class="py-name" href="#" onclick="return doclink('link-195', 'start_client', 'link-195');">start_client</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-comment"># check host key if we were given one</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hostkey</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name" targets="Method paramiko.Transport.get_remote_server_key()=paramiko.Transport-class.html#get_remote_server_key"><a title="paramiko.Transport.get_remote_server_key" class="py-name" href="#" onclick="return doclink('link-196', 'get_remote_server_key', 'link-196');">get_remote_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-192', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-197', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-193', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-194" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-198', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-199" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1354,8 +1373,8 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-194', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Bad host key from server'</tt><tt class="py-op">)</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-195" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-199', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Bad host key from server'</tt><tt class="py-op">)</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-200" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1376,12 +1395,12 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-195', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Expected: %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-200', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Expected: %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-196', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-201', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hostkey</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-202" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1402,13 +1421,13 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-197', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Got : %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-202', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Got : %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-198', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-199" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-199', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Bad host key from server'</tt><tt class="py-op">)</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-200" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-203', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-204" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-204', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Bad host key from server'</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1429,15 +1448,15 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-200', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Host key verified (%s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="paramiko.AgentKey.get_name
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-205', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Host key verified (%s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">hostkey</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="paramiko.AgentKey.get_name
paramiko.Channel.get_name
paramiko.DSSKey.get_name
paramiko.PKey.get_name
-paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-201', 'get_name', 'link-121');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt id="link-202" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-202', 'pkey', 'link-202');">pkey</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-203" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.get_name" class="py-name" href="#" onclick="return doclink('link-206', 'get_name', 'link-126');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt id="link-207" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-207', 'pkey', 'link-207');">pkey</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">password</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1458,10 +1477,10 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-203', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Attempting password auth...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method paramiko.Transport.auth_password()=paramiko.Transport-class.html#auth_password"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-204', 'auth_password', 'link-204');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-208', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Attempting password auth...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name" targets="Method paramiko.Transport.auth_password()=paramiko.Transport-class.html#auth_password"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-209', 'auth_password', 'link-209');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-210" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1482,380 +1501,380 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-205', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Attempting public-key auth...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name" targets="Method paramiko.Transport.auth_publickey()=paramiko.Transport-class.html#auth_publickey"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-206', 'auth_publickey', 'link-206');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt id="link-207" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-207', 'pkey', 'link-202');">pkey</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_exception"></a><div id="Transport.get_exception-def"><a name="L993"></a><tt class="py-lineno"> 993</tt> <a class="py-toggle" href="#" id="Transport.get_exception-toggle" onclick="return toggle('Transport.get_exception');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_exception">get_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_exception-expanded"><a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"><tt class="py-docstring"> Return any exception that happened during the last server request.</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"><tt class="py-docstring"> This can be used to fetch more specific error information after using</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"><tt class="py-docstring"> calls like L{start_client}. The exception (if any) is cleared after</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"><tt class="py-docstring"> this call.</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"><tt class="py-docstring"> @return: an exception, or C{None} if there is no stored exception.</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Exception</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> </tt>
-<a name="Transport.set_subsystem_handler"></a><div id="Transport.set_subsystem_handler-def"><a name="L1013"></a><tt class="py-lineno">1013</tt> <a class="py-toggle" href="#" id="Transport.set_subsystem_handler-toggle" onclick="return toggle('Transport.set_subsystem_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_subsystem_handler">set_subsystem_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">larg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwarg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.set_subsystem_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_subsystem_handler-expanded"><a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"><tt class="py-docstring"> Set the handler class for a subsystem in server mode. If a request</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"><tt class="py-docstring"> for this subsystem is made on an open ssh channel later, this handler</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"><tt class="py-docstring"> will be constructed and called -- see L{SubsystemHandler} for more</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"><tt class="py-docstring"> detailed documentation.</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"><tt class="py-docstring"> Any extra parameters (including keyword arguments) are saved and</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> passed to the L{SubsystemHandler} constructor later.</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"><tt class="py-docstring"> @param name: name of the subsystem.</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: subclass of L{SubsystemHandler} that handles this</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"><tt class="py-docstring"> subsystem.</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: class</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">[</tt><tt id="link-208" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-208', 'name', 'link-56');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">larg</tt><tt class="py-op">,</tt> <tt class="py-name">kwarg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> </tt>
-<a name="Transport.is_authenticated"></a><div id="Transport.is_authenticated-def"><a name="L1035"></a><tt class="py-lineno">1035</tt> <a class="py-toggle" href="#" id="Transport.is_authenticated-toggle" onclick="return toggle('Transport.is_authenticated');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#is_authenticated">is_authenticated</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.is_authenticated-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.is_authenticated-expanded"><a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"><tt class="py-docstring"> Return true if this session is active and authenticated.</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if the session is still open and has been authenticated</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"><tt class="py-docstring"> successfully; False if authentication failed and/or the session is</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"><tt class="py-docstring"> closed.</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-209', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-210', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="paramiko.Transport.is_authenticated" class="py-name" href="#" onclick="return doclink('link-211', 'is_authenticated', 'link-109');">is_authenticated</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_username"></a><div id="Transport.get_username-def"><a name="L1046"></a><tt class="py-lineno">1046</tt> <a class="py-toggle" href="#" id="Transport.get_username-toggle" onclick="return toggle('Transport.get_username');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_username">get_username</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_username-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_username-expanded"><a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"><tt class="py-docstring"> Return the username this connection is authenticated for. If the</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"><tt class="py-docstring"> session is not authenticated (or authentication failed), this method</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"><tt class="py-docstring"> returns C{None}.</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"><tt class="py-docstring"> @return: username that was authenticated, or C{None}.</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-212', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-213', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Method paramiko.Transport.get_username()=paramiko.Transport-class.html#get_username"><a title="paramiko.Transport.get_username" class="py-name" href="#" onclick="return doclink('link-214', 'get_username', 'link-214');">get_username</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> </tt>
-<a name="Transport.auth_none"></a><div id="Transport.auth_none-def"><a name="L1059"></a><tt class="py-lineno">1059</tt> <a class="py-toggle" href="#" id="Transport.auth_none-toggle" onclick="return toggle('Transport.auth_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_none">auth_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.auth_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_none-expanded"><a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"><tt class="py-docstring"> Try to authenticate to the server using no authentication at all.</tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"><tt class="py-docstring"> This will almost always fail. It may be useful for determining the</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"><tt class="py-docstring"> list of authentication types supported by the server, by catching the</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"><tt class="py-docstring"> L{BadAuthenticationType} exception raised.</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if "none" authentication isn't allowed</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"><tt class="py-docstring"> by the server for this user</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the authentication failed due to a network</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"><tt class="py-docstring"> error</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-215" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-215', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-216', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-217', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-218" class="py-name" targets="Method paramiko.Transport.auth_none()=paramiko.Transport-class.html#auth_none"><a title="paramiko.Transport.auth_none" class="py-name" href="#" onclick="return doclink('link-218', 'auth_none', 'link-218');">auth_none</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-219', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> </tt>
-<a name="Transport.auth_password"></a><div id="Transport.auth_password-def"><a name="L1086"></a><tt class="py-lineno">1086</tt> <a class="py-toggle" href="#" id="Transport.auth_password-toggle" onclick="return toggle('Transport.auth_password');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_password">auth_password</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.auth_password-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_password-expanded"><a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server using a password. The username and password</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"><tt class="py-docstring"> are sent over an encrypted link.</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"> If an C{event} is passed in, this method will return immediately, and</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"><tt class="py-docstring"> the event will be triggered once authentication succeeds or fails. On</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"><tt class="py-docstring"> success, L{is_authenticated} will return C{True}. On failure, you may</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"><tt class="py-docstring"> use L{get_exception} to get more detailed error information.</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.1, if no event is passed, this method will block until the</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"><tt class="py-docstring"> authentication succeeds or fails. On failure, an exception is raised.</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise, the method simply returns.</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5, if no event is passed and C{fallback} is C{True} (the</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"><tt class="py-docstring"> default), if the server doesn't support plain password authentication</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"><tt class="py-docstring"> but does support so-called "keyboard-interactive" mode, an attempt</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"><tt class="py-docstring"> will be made to authenticate using this interactive mode. If it fails,</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"><tt class="py-docstring"> the normal exception will be thrown as if the attempt had never been</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"><tt class="py-docstring"> made. This is useful for some recent Gentoo and Debian distributions,</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> which turn off plain password authentication in a misguided belief</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> that interactive authentication is "more secure". (It's not.)</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> @param password: the password to authenticate with</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str or unicode</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when the authentication attempt is</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"><tt class="py-docstring"> complete (whether it was successful or not)</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"><tt class="py-docstring"> @param fallback: C{True} if an attempt at an automated "interactive"</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"><tt class="py-docstring"> password auth should be made if the server doesn't support normal</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"><tt class="py-docstring"> password auth</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"><tt class="py-docstring"> @type fallback: bool</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if password authentication isn't</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user (and no event was passed in)</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed (and no</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"><tt class="py-docstring"> event was passed in)</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to send the password unless we're on a secure link</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt id="link-220" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-220', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-221', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-222', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-223', 'auth_password', 'link-204');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-comment"># caller wants to wait for event themselves</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-224', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-225" class="py-name"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-225', 'BadAuthenticationType', 'link-43');">BadAuthenticationType</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-comment"># if password auth isn't allowed, but keyboard-interactive *is*, try to fudge it</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fallback</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'keyboard-interactive'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name" targets="Variable paramiko.BadAuthenticationType.allowed_types=paramiko.BadAuthenticationType-class.html#allowed_types,Variable paramiko.ssh_exception.PartialAuthentication.allowed_types=paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types"><a title="paramiko.BadAuthenticationType.allowed_types
-paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-226', 'allowed_types', 'link-226');">allowed_types</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">title</tt><tt class="py-op">,</tt> <tt class="py-param">instructions</tt><tt class="py-op">,</tt> <tt class="py-param">fields</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-227" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-227', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Fallback authentication failed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-comment"># for some reason, at least on os x, a 2nd request will</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># be made with zero fields requested. maybe it's just</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># to try to fake out automated scripting of the exact</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># type we're doing here. *shrug* :)</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt> <tt class="py-name">password</tt> <tt class="py-op">]</tt> </tt>
-</div><a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name" targets="Method paramiko.Transport.auth_interactive()=paramiko.Transport-class.html#auth_interactive"><a title="paramiko.Transport.auth_interactive" class="py-name" href="#" onclick="return doclink('link-228', 'auth_interactive', 'link-228');">auth_interactive</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-229" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-229', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignored</tt><tt class="py-op">:</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt class="py-comment"># attempt failed; just raise the original exception</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt class="py-name">x</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> </tt>
-<a name="Transport.auth_publickey"></a><div id="Transport.auth_publickey-def"><a name="L1169"></a><tt class="py-lineno">1169</tt> <a class="py-toggle" href="#" id="Transport.auth_publickey-toggle" onclick="return toggle('Transport.auth_publickey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_publickey">auth_publickey</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.auth_publickey-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_publickey-expanded"><a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server using a private key. The key is used to</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"><tt class="py-docstring"> sign data from the server, so it must include the private part.</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"><tt class="py-docstring"> If an C{event} is passed in, this method will return immediately, and</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"><tt class="py-docstring"> the event will be triggered once authentication succeeds or fails. On</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"><tt class="py-docstring"> success, L{is_authenticated} will return C{True}. On failure, you may</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"><tt class="py-docstring"> use L{get_exception} to get more detailed error information.</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.1, if no event is passed, this method will block until the</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"><tt class="py-docstring"> authentication succeeds or fails. On failure, an exception is raised.</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise, the method simply returns.</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the private key to authenticate with</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when the authentication attempt is</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"> complete (whether it was successful or not)</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if public-key authentication isn't</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user (and no event was passed in)</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed (and no</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"><tt class="py-docstring"> event was passed in)</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to authenticate unless we're on a secure link</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt id="link-230" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-230', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-231', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-232', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-233', 'auth_publickey', 'link-206');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt class="py-comment"># caller wants to wait for event themselves</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-234', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> </tt>
-<a name="Transport.auth_interactive"></a><div id="Transport.auth_interactive-def"><a name="L1218"></a><tt class="py-lineno">1218</tt> <a class="py-toggle" href="#" id="Transport.auth_interactive-toggle" onclick="return toggle('Transport.auth_interactive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_interactive">auth_interactive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-param">submethods</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.auth_interactive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_interactive-expanded"><a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server interactively. A handler is used to answer</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"><tt class="py-docstring"> arbitrary questions from the server. On many servers, this is just a</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"><tt class="py-docstring"> dumb wrapper around PAM.</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"><tt class="py-docstring"> This method will block until the authentication succeeds or fails,</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"><tt class="py-docstring"> peroidically calling the handler asynchronously to get answers to</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"><tt class="py-docstring"> authentication questions. The handler may be called more than once</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"><tt class="py-docstring"> if the server continues to ask questions.</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"><tt class="py-docstring"> The handler is expected to be a callable that will handle calls of the</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"><tt class="py-docstring"> form: C{handler(title, instructions, prompt_list)}. The C{title} is</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"><tt class="py-docstring"> meant to be a dialog-window title, and the C{instructions} are user</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"><tt class="py-docstring"> instructions (both are strings). C{prompt_list} will be a list of</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"><tt class="py-docstring"> prompts, each prompt being a tuple of C{(str, bool)}. The string is</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"><tt class="py-docstring"> the prompt and the boolean indicates whether the user text should be</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"><tt class="py-docstring"> echoed.</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"><tt class="py-docstring"> A sample call would thus be:</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> C{handler('title', 'instructions', [('Password:', False)])}.</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> The handler should return a list or tuple of answers to the server's</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> questions.</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-210', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Attempting public-key auth...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name" targets="Method paramiko.Transport.auth_publickey()=paramiko.Transport-class.html#auth_publickey"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-211', 'auth_publickey', 'link-211');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt id="link-212" class="py-name"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-212', 'pkey', 'link-207');">pkey</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_exception"></a><div id="Transport.get_exception-def"><a name="L1011"></a><tt class="py-lineno">1011</tt> <a class="py-toggle" href="#" id="Transport.get_exception-toggle" onclick="return toggle('Transport.get_exception');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_exception">get_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_exception-expanded"><a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"><tt class="py-docstring"> Return any exception that happened during the last server request.</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"><tt class="py-docstring"> This can be used to fetch more specific error information after using</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"><tt class="py-docstring"> calls like L{start_client}. The exception (if any) is cleared after</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"><tt class="py-docstring"> this call.</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"><tt class="py-docstring"> @return: an exception, or C{None} if there is no stored exception.</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Exception</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> </tt>
+<a name="Transport.set_subsystem_handler"></a><div id="Transport.set_subsystem_handler-def"><a name="L1031"></a><tt class="py-lineno">1031</tt> <a class="py-toggle" href="#" id="Transport.set_subsystem_handler-toggle" onclick="return toggle('Transport.set_subsystem_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_subsystem_handler">set_subsystem_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">larg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwarg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.set_subsystem_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_subsystem_handler-expanded"><a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> Set the handler class for a subsystem in server mode. If a request</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"> for this subsystem is made on an open ssh channel later, this handler</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> will be constructed and called -- see L{SubsystemHandler} for more</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"><tt class="py-docstring"> detailed documentation.</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"><tt class="py-docstring"> Any extra parameters (including keyword arguments) are saved and</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"><tt class="py-docstring"> passed to the L{SubsystemHandler} constructor later.</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"><tt class="py-docstring"> @param name: name of the subsystem.</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: subclass of L{SubsystemHandler} that handles this</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"><tt class="py-docstring"> subsystem.</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: class</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">[</tt><tt id="link-213" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-213', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">larg</tt><tt class="py-op">,</tt> <tt class="py-name">kwarg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> </tt>
+<a name="Transport.is_authenticated"></a><div id="Transport.is_authenticated-def"><a name="L1053"></a><tt class="py-lineno">1053</tt> <a class="py-toggle" href="#" id="Transport.is_authenticated-toggle" onclick="return toggle('Transport.is_authenticated');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#is_authenticated">is_authenticated</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.is_authenticated-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.is_authenticated-expanded"><a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"> Return true if this session is active and authenticated.</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"><tt class="py-docstring"> @return: True if the session is still open and has been authenticated</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"><tt class="py-docstring"> successfully; False if authentication failed and/or the session is</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"><tt class="py-docstring"> closed.</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-214', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-215', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="paramiko.Transport.is_authenticated" class="py-name" href="#" onclick="return doclink('link-216', 'is_authenticated', 'link-114');">is_authenticated</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_username"></a><div id="Transport.get_username-def"><a name="L1064"></a><tt class="py-lineno">1064</tt> <a class="py-toggle" href="#" id="Transport.get_username-toggle" onclick="return toggle('Transport.get_username');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_username">get_username</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_username-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_username-expanded"><a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> Return the username this connection is authenticated for. If the</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"> session is not authenticated (or authentication failed), this method</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> returns C{None}.</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"><tt class="py-docstring"> @return: username that was authenticated, or C{None}.</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-217', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-218', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-219" class="py-name" targets="Method paramiko.Transport.get_username()=paramiko.Transport-class.html#get_username"><a title="paramiko.Transport.get_username" class="py-name" href="#" onclick="return doclink('link-219', 'get_username', 'link-219');">get_username</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> </tt>
+<a name="Transport.auth_none"></a><div id="Transport.auth_none-def"><a name="L1077"></a><tt class="py-lineno">1077</tt> <a class="py-toggle" href="#" id="Transport.auth_none-toggle" onclick="return toggle('Transport.auth_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_none">auth_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.auth_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_none-expanded"><a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> Try to authenticate to the server using no authentication at all.</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> This will almost always fail. It may be useful for determining the</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"><tt class="py-docstring"> list of authentication types supported by the server, by catching the</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"><tt class="py-docstring"> L{BadAuthenticationType} exception raised.</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if "none" authentication isn't allowed</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"> by the server for this user</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the authentication failed due to a network</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"><tt class="py-docstring"> error</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-220" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-220', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-221', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-222', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name" targets="Method paramiko.Transport.auth_none()=paramiko.Transport-class.html#auth_none"><a title="paramiko.Transport.auth_none" class="py-name" href="#" onclick="return doclink('link-223', 'auth_none', 'link-223');">auth_none</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-224', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> </tt>
+<a name="Transport.auth_password"></a><div id="Transport.auth_password-def"><a name="L1104"></a><tt class="py-lineno">1104</tt> <a class="py-toggle" href="#" id="Transport.auth_password-toggle" onclick="return toggle('Transport.auth_password');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_password">auth_password</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">fallback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.auth_password-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_password-expanded"><a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server using a password. The username and password</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> are sent over an encrypted link.</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"><tt class="py-docstring"> If an C{event} is passed in, this method will return immediately, and</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"><tt class="py-docstring"> the event will be triggered once authentication succeeds or fails. On</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"><tt class="py-docstring"> success, L{is_authenticated} will return C{True}. On failure, you may</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"><tt class="py-docstring"> use L{get_exception} to get more detailed error information.</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.1, if no event is passed, this method will block until the</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> authentication succeeds or fails. On failure, an exception is raised.</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise, the method simply returns.</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5, if no event is passed and C{fallback} is C{True} (the</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-docstring"> default), if the server doesn't support plain password authentication</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"><tt class="py-docstring"> but does support so-called "keyboard-interactive" mode, an attempt</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"><tt class="py-docstring"> will be made to authenticate using this interactive mode. If it fails,</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"><tt class="py-docstring"> the normal exception will be thrown as if the attempt had never been</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"><tt class="py-docstring"> made. This is useful for some recent Gentoo and Debian distributions,</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"><tt class="py-docstring"> which turn off plain password authentication in a misguided belief</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"><tt class="py-docstring"> that interactive authentication is "more secure". (It's not.)</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"><tt class="py-docstring"> @param password: the password to authenticate with</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str or unicode</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when the authentication attempt is</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"><tt class="py-docstring"> complete (whether it was successful or not)</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"><tt class="py-docstring"> @param fallback: C{True} if an attempt at an automated "interactive"</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"><tt class="py-docstring"> password auth should be made if the server doesn't support normal</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"><tt class="py-docstring"> password auth</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"><tt class="py-docstring"> @type fallback: bool</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if password authentication isn't</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user (and no event was passed in)</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed (and no</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"><tt class="py-docstring"> event was passed in)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to send the password unless we're on a secure link</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-225" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-225', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-226', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-227', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="paramiko.Transport.auth_password" class="py-name" href="#" onclick="return doclink('link-228', 'auth_password', 'link-209');">auth_password</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-comment"># caller wants to wait for event themselves</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-229', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-230" class="py-name"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-230', 'BadAuthenticationType', 'link-43');">BadAuthenticationType</a></tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-comment"># if password auth isn't allowed, but keyboard-interactive *is*, try to fudge it</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fallback</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-string">'keyboard-interactive'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name" targets="Variable paramiko.BadAuthenticationType.allowed_types=paramiko.BadAuthenticationType-class.html#allowed_types,Variable paramiko.ssh_exception.PartialAuthentication.allowed_types=paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types"><a title="paramiko.BadAuthenticationType.allowed_types
+paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-231', 'allowed_types', 'link-231');">allowed_types</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">title</tt><tt class="py-op">,</tt> <tt class="py-param">instructions</tt><tt class="py-op">,</tt> <tt class="py-param">fields</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-232" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-232', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Fallback authentication failed.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fields</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-comment"># for some reason, at least on os x, a 2nd request will</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-comment"># be made with zero fields requested. maybe it's just</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-comment"># to try to fake out automated scripting of the exact</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt class="py-comment"># type we're doing here. *shrug* :)</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt> <tt class="py-name">password</tt> <tt class="py-op">]</tt> </tt>
+</div><a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method paramiko.Transport.auth_interactive()=paramiko.Transport-class.html#auth_interactive"><a title="paramiko.Transport.auth_interactive" class="py-name" href="#" onclick="return doclink('link-233', 'auth_interactive', 'link-233');">auth_interactive</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-234" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-234', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">ignored</tt><tt class="py-op">:</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt class="py-comment"># attempt failed; just raise the original exception</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">x</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> </tt>
+<a name="Transport.auth_publickey"></a><div id="Transport.auth_publickey-def"><a name="L1187"></a><tt class="py-lineno">1187</tt> <a class="py-toggle" href="#" id="Transport.auth_publickey-toggle" onclick="return toggle('Transport.auth_publickey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_publickey">auth_publickey</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.auth_publickey-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_publickey-expanded"><a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server using a private key. The key is used to</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"><tt class="py-docstring"> sign data from the server, so it must include the private part.</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"> If an C{event} is passed in, this method will return immediately, and</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> the event will be triggered once authentication succeeds or fails. On</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"> success, L{is_authenticated} will return C{True}. On failure, you may</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"><tt class="py-docstring"> use L{get_exception} to get more detailed error information.</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.1, if no event is passed, this method will block until the</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"><tt class="py-docstring"> authentication succeeds or fails. On failure, an exception is raised.</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"><tt class="py-docstring"> Otherwise, the method simply returns.</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the private key to authenticate with</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"> @param event: an event to trigger when the authentication attempt is</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"><tt class="py-docstring"> complete (whether it was successful or not)</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"><tt class="py-docstring"> @type event: threading.Event</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty)</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if public-key authentication isn't</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user (and no event was passed in)</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed (and no</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"><tt class="py-docstring"> event was passed in)</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to authenticate unless we're on a secure link</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-235" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-235', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-236', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-237', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="paramiko.Transport.auth_publickey" class="py-name" href="#" onclick="return doclink('link-238', 'auth_publickey', 'link-211');">auth_publickey</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt class="py-comment"># caller wants to wait for event themselves</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-239', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> </tt>
+<a name="Transport.auth_interactive"></a><div id="Transport.auth_interactive-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="Transport.auth_interactive-toggle" onclick="return toggle('Transport.auth_interactive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#auth_interactive">auth_interactive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">username</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-param">submethods</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.auth_interactive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.auth_interactive-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate to the server interactively. A handler is used to answer</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> arbitrary questions from the server. On many servers, this is just a</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> dumb wrapper around PAM.</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"> This method will block until the authentication succeeds or fails,</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"><tt class="py-docstring"> peroidically calling the handler asynchronously to get answers to</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"><tt class="py-docstring"> authentication questions. The handler may be called more than once</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"><tt class="py-docstring"> if the server continues to ask questions.</tt> </tt>
<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: a handler for responding to server questions</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: callable</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"><tt class="py-docstring"> @param submethods: a string list of desired submethods (optional)</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"><tt class="py-docstring"> @type submethods: str</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty).</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if public-key authentication isn't</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to authenticate unless we're on a secure link</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">raise</tt> <tt id="link-235" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-235', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-236', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-237', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="paramiko.Transport.auth_interactive" class="py-name" href="#" onclick="return doclink('link-238', 'auth_interactive', 'link-228');">auth_interactive</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">,</tt> <tt class="py-name">submethods</tt><tt class="py-op">)</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-239', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> </tt>
-<a name="Transport.set_log_channel"></a><div id="Transport.set_log_channel-def"><a name="L1272"></a><tt class="py-lineno">1272</tt> <a class="py-toggle" href="#" id="Transport.set_log_channel-toggle" onclick="return toggle('Transport.set_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_log_channel">set_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.set_log_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_log_channel-expanded"><a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"><tt class="py-docstring"> Set the channel for this transport's logging. The default is</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"><tt class="py-docstring"> C{"paramiko.transport"} but it can be set to anything you want.</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"><tt class="py-docstring"> (See the C{logging} module for more info.) SSH Channels will log</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> to a sub-channel of the one specified.</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name for logging</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-240', 'name', 'link-56');">name</a></tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-241', 'logger', 'link-103');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-242" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-242', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-243', 'get_logger', 'link-105');">get_logger</a></tt><tt class="py-op">(</tt><tt id="link-244" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-244', 'name', 'link-56');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_log</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-245', 'logger', 'link-103');">logger</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_log_channel"></a><div id="Transport.get_log_channel-def"><a name="L1288"></a><tt class="py-lineno">1288</tt> <a class="py-toggle" href="#" id="Transport.get_log_channel-toggle" onclick="return toggle('Transport.get_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_log_channel">get_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_log_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_log_channel-expanded"><a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"><tt class="py-docstring"> Return the channel name used for this transport's logging.</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"><tt class="py-docstring"> @return: channel name.</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> </tt>
-</div><a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> </tt>
-<a name="Transport.set_hexdump"></a><div id="Transport.set_hexdump-def"><a name="L1299"></a><tt class="py-lineno">1299</tt> <a class="py-toggle" href="#" id="Transport.set_hexdump-toggle" onclick="return toggle('Transport.set_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_hexdump">set_hexdump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hexdump</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.set_hexdump-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_hexdump-expanded"><a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off logging a hex dump of protocol traffic at DEBUG level in</tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"><tt class="py-docstring"> the logs. Normally you would want this off (which is the default),</tt> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"><tt class="py-docstring"> but if you are debugging something, it may be useful.</tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"><tt class="py-docstring"> @param hexdump: C{True} to log protocol traffix (in hex) to the log;</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"><tt class="py-docstring"> C{False} otherwise.</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"><tt class="py-docstring"> @type hexdump: bool</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name" targets="Method paramiko.Transport.set_hexdump()=paramiko.Transport-class.html#set_hexdump"><a title="paramiko.Transport.set_hexdump" class="py-name" href="#" onclick="return doclink('link-246', 'set_hexdump', 'link-246');">set_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-name">hexdump</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> </tt>
-<a name="Transport.get_hexdump"></a><div id="Transport.get_hexdump-def"><a name="L1311"></a><tt class="py-lineno">1311</tt> <a class="py-toggle" href="#" id="Transport.get_hexdump-toggle" onclick="return toggle('Transport.get_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_hexdump">get_hexdump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.get_hexdump-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_hexdump-expanded"><a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"><tt class="py-docstring"> Return C{True} if the transport is currently logging hex dumps of</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"><tt class="py-docstring"> protocol traffic.</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if hex dumps are being logged</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name" targets="Method paramiko.Transport.get_hexdump()=paramiko.Transport-class.html#get_hexdump"><a title="paramiko.Transport.get_hexdump" class="py-name" href="#" onclick="return doclink('link-247', 'get_hexdump', 'link-247');">get_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"> </tt>
-<a name="Transport.use_compression"></a><div id="Transport.use_compression-def"><a name="L1323"></a><tt class="py-lineno">1323</tt> <a class="py-toggle" href="#" id="Transport.use_compression-toggle" onclick="return toggle('Transport.use_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#use_compression">use_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">compress</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.use_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.use_compression-expanded"><a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off compression. This will only have an affect before starting</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"><tt class="py-docstring"> the transport (ie before calling L{connect}, etc). By default,</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"><tt class="py-docstring"> compression is off since it negatively affects interactive sessions.</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"><tt class="py-docstring"> @param compress: C{True} to ask the remote client/server to compress</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"><tt class="py-docstring"> traffic; C{False} to refuse compression</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"><tt class="py-docstring"> @type compress: bool</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.2</tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-248" class="py-name"><a title="paramiko.compress" class="py-name" href="#" onclick="return doclink('link-248', 'compress', 'link-10');">compress</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-249', '_preferred_compression', 'link-53');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">,</tt> <tt class="py-string">'zlib'</tt><tt class="py-op">,</tt> <tt class="py-string">'none'</tt> <tt class="py-op">)</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-250', '_preferred_compression', 'link-53');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'none'</tt><tt class="py-op">,</tt> <tt class="py-op">)</tt> </tt>
-</div><a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> </tt>
-<a name="Transport.getpeername"></a><div id="Transport.getpeername-def"><a name="L1340"></a><tt class="py-lineno">1340</tt> <a class="py-toggle" href="#" id="Transport.getpeername-toggle" onclick="return toggle('Transport.getpeername');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#getpeername">getpeername</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.getpeername-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.getpeername-expanded"><a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"><tt class="py-docstring"> Return the address of the remote side of this Transport, if possible.</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"><tt class="py-docstring"> This is effectively a wrapper around C{'getpeername'} on the underlying</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"><tt class="py-docstring"> socket. If the socket-like object has no C{'getpeername'} method,</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"><tt class="py-docstring"> then C{("unknown", 0)} is returned.</tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"><tt class="py-docstring"> @return: the address if the remote host, if known</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(str, int)</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"> <tt class="py-name">gp</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">,</tt> <tt class="py-string">'getpeername'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">gp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-string">'unknown'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">gp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> </tt>
-<a name="Transport.stop_thread"></a><div id="Transport.stop_thread-def"><a name="L1355"></a><tt class="py-lineno">1355</tt> <a class="py-toggle" href="#" id="Transport.stop_thread-toggle" onclick="return toggle('Transport.stop_thread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#stop_thread">stop_thread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.stop_thread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.stop_thread-expanded"><a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="paramiko.Agent.close
+<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"> The handler is expected to be a callable that will handle calls of the</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"> form: C{handler(title, instructions, prompt_list)}. The C{title} is</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"><tt class="py-docstring"> meant to be a dialog-window title, and the C{instructions} are user</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"><tt class="py-docstring"> instructions (both are strings). C{prompt_list} will be a list of</tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"><tt class="py-docstring"> prompts, each prompt being a tuple of C{(str, bool)}. The string is</tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"><tt class="py-docstring"> the prompt and the boolean indicates whether the user text should be</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"><tt class="py-docstring"> echoed.</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"><tt class="py-docstring"> A sample call would thus be:</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"><tt class="py-docstring"> C{handler('title', 'instructions', [('Password:', False)])}.</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"><tt class="py-docstring"> The handler should return a list or tuple of answers to the server's</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"><tt class="py-docstring"> questions.</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"><tt class="py-docstring"> If the server requires multi-step authentication (which is very rare),</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"><tt class="py-docstring"> this method will return a list of auth types permissible for the next</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"><tt class="py-docstring"> step. Otherwise, in the normal case, an empty list is returned.</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"><tt class="py-docstring"> @param username: the username to authenticate as</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"><tt class="py-docstring"> @type username: string</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"><tt class="py-docstring"> @param handler: a handler for responding to server questions</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"><tt class="py-docstring"> @type handler: callable</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"><tt class="py-docstring"> @param submethods: a string list of desired submethods (optional)</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"><tt class="py-docstring"> @type submethods: str</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of auth types permissible for the next stage of</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"><tt class="py-docstring"> authentication (normally empty).</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"><tt class="py-docstring"> @raise BadAuthenticationType: if public-key authentication isn't</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"><tt class="py-docstring"> allowed by the server for this user</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> @raise AuthenticationException: if the authentication failed</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if there was a network error</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"> <tt class="py-comment"># we should never try to authenticate unless we're on a secure link</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-240" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-240', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'No existing session'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">my_event</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Event</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-241', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-242', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="paramiko.Transport.auth_interactive" class="py-name" href="#" onclick="return doclink('link-243', 'auth_interactive', 'link-233');">auth_interactive</a></tt><tt class="py-op">(</tt><tt class="py-name">username</tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">my_event</tt><tt class="py-op">,</tt> <tt class="py-name">submethods</tt><tt class="py-op">)</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-244', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">wait_for_response</tt><tt class="py-op">(</tt><tt class="py-name">my_event</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> </tt>
+<a name="Transport.set_log_channel"></a><div id="Transport.set_log_channel-def"><a name="L1290"></a><tt class="py-lineno">1290</tt> <a class="py-toggle" href="#" id="Transport.set_log_channel-toggle" onclick="return toggle('Transport.set_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_log_channel">set_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.set_log_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_log_channel-expanded"><a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"><tt class="py-docstring"> Set the channel for this transport's logging. The default is</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"><tt class="py-docstring"> C{"paramiko.transport"} but it can be set to anything you want.</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"><tt class="py-docstring"> (See the C{logging} module for more info.) SSH Channels will log</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"><tt class="py-docstring"> to a sub-channel of the one specified.</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"><tt class="py-docstring"> @param name: new channel name for logging</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> <tt class="py-op">=</tt> <tt id="link-245" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-245', 'name', 'link-60');">name</a></tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-246', 'logger', 'link-108');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-247" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-247', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="paramiko.util.get_logger" class="py-name" href="#" onclick="return doclink('link-248', 'get_logger', 'link-110');">get_logger</a></tt><tt class="py-op">(</tt><tt id="link-249" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-249', 'name', 'link-60');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_log</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-250', 'logger', 'link-108');">logger</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_log_channel"></a><div id="Transport.get_log_channel-def"><a name="L1306"></a><tt class="py-lineno">1306</tt> <a class="py-toggle" href="#" id="Transport.get_log_channel-toggle" onclick="return toggle('Transport.get_log_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_log_channel">get_log_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_log_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_log_channel-expanded"><a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"><tt class="py-docstring"> Return the channel name used for this transport's logging.</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"><tt class="py-docstring"> @return: channel name.</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.2</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">log_name</tt> </tt>
+</div><a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"> </tt>
+<a name="Transport.set_hexdump"></a><div id="Transport.set_hexdump-def"><a name="L1317"></a><tt class="py-lineno">1317</tt> <a class="py-toggle" href="#" id="Transport.set_hexdump-toggle" onclick="return toggle('Transport.set_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#set_hexdump">set_hexdump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hexdump</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.set_hexdump-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.set_hexdump-expanded"><a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off logging a hex dump of protocol traffic at DEBUG level in</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"><tt class="py-docstring"> the logs. Normally you would want this off (which is the default),</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"><tt class="py-docstring"> but if you are debugging something, it may be useful.</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"><tt class="py-docstring"> @param hexdump: C{True} to log protocol traffix (in hex) to the log;</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"><tt class="py-docstring"> C{False} otherwise.</tt> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"><tt class="py-docstring"> @type hexdump: bool</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name" targets="Method paramiko.Transport.set_hexdump()=paramiko.Transport-class.html#set_hexdump"><a title="paramiko.Transport.set_hexdump" class="py-name" href="#" onclick="return doclink('link-251', 'set_hexdump', 'link-251');">set_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-name">hexdump</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> </tt>
+<a name="Transport.get_hexdump"></a><div id="Transport.get_hexdump-def"><a name="L1329"></a><tt class="py-lineno">1329</tt> <a class="py-toggle" href="#" id="Transport.get_hexdump-toggle" onclick="return toggle('Transport.get_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#get_hexdump">get_hexdump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.get_hexdump-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.get_hexdump-expanded"><a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"><tt class="py-docstring"> Return C{True} if the transport is currently logging hex dumps of</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"><tt class="py-docstring"> protocol traffic.</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if hex dumps are being logged</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.4</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name" targets="Method paramiko.Transport.get_hexdump()=paramiko.Transport-class.html#get_hexdump"><a title="paramiko.Transport.get_hexdump" class="py-name" href="#" onclick="return doclink('link-252', 'get_hexdump', 'link-252');">get_hexdump</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> </tt>
+<a name="Transport.use_compression"></a><div id="Transport.use_compression-def"><a name="L1341"></a><tt class="py-lineno">1341</tt> <a class="py-toggle" href="#" id="Transport.use_compression-toggle" onclick="return toggle('Transport.use_compression');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#use_compression">use_compression</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">compress</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.use_compression-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.use_compression-expanded"><a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off compression. This will only have an affect before starting</tt> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"><tt class="py-docstring"> the transport (ie before calling L{connect}, etc). By default,</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"><tt class="py-docstring"> compression is off since it negatively affects interactive sessions.</tt> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"><tt class="py-docstring"> @param compress: C{True} to ask the remote client/server to compress</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"><tt class="py-docstring"> traffic; C{False} to refuse compression</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"><tt class="py-docstring"> @type compress: bool</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.2</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-253" class="py-name"><a title="paramiko.compress" class="py-name" href="#" onclick="return doclink('link-253', 'compress', 'link-10');">compress</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-254', '_preferred_compression', 'link-57');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">,</tt> <tt class="py-string">'zlib'</tt><tt class="py-op">,</tt> <tt class="py-string">'none'</tt> <tt class="py-op">)</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-255', '_preferred_compression', 'link-57');">_preferred_compression</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> <tt class="py-string">'none'</tt><tt class="py-op">,</tt> <tt class="py-op">)</tt> </tt>
+</div><a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"> </tt>
+<a name="Transport.getpeername"></a><div id="Transport.getpeername-def"><a name="L1358"></a><tt class="py-lineno">1358</tt> <a class="py-toggle" href="#" id="Transport.getpeername-toggle" onclick="return toggle('Transport.getpeername');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#getpeername">getpeername</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.getpeername-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.getpeername-expanded"><a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"><tt class="py-docstring"> Return the address of the remote side of this Transport, if possible.</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"><tt class="py-docstring"> This is effectively a wrapper around C{'getpeername'} on the underlying</tt> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"><tt class="py-docstring"> socket. If the socket-like object has no C{'getpeername'} method,</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"><tt class="py-docstring"> then C{("unknown", 0)} is returned.</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"><tt class="py-docstring"> @return: the address if the remote host, if known</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple(str, int)</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"> <tt class="py-name">gp</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">,</tt> <tt class="py-string">'getpeername'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">gp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-string">'unknown'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">gp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"> </tt>
+<a name="Transport.stop_thread"></a><div id="Transport.stop_thread-def"><a name="L1373"></a><tt class="py-lineno">1373</tt> <a class="py-toggle" href="#" id="Transport.stop_thread-toggle" onclick="return toggle('Transport.stop_thread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#stop_thread">stop_thread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.stop_thread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.stop_thread-expanded"><a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -1866,49 +1885,50 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-251', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"> </tt>
-<a name="Transport._log"></a><div id="Transport._log-def"><a name="L1363"></a><tt class="py-lineno">1363</tt> <a class="py-toggle" href="#" id="Transport._log-toggle" onclick="return toggle('Transport._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._log-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._log-expanded"><a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msg</tt><tt class="py-op">:</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-252', 'logger', 'link-103');">logger</a></tt><tt class="py-op">.</tt><tt id="link-253" class="py-name" targets="Method paramiko.logging22.logger.log()=paramiko.logging22.logger-class.html#log"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-253', 'log', 'link-253');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-254', 'logger', 'link-103');">logger</a></tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-255', 'log', 'link-253');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> </tt>
-<a name="Transport._get_modulus_pack"></a><div id="Transport._get_modulus_pack-def"><a name="L1370"></a><tt class="py-lineno">1370</tt> <a class="py-toggle" href="#" id="Transport._get_modulus_pack-toggle" onclick="return toggle('Transport._get_modulus_pack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_modulus_pack">_get_modulus_pack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._get_modulus_pack-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_modulus_pack-expanded"><a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"> <tt class="py-docstring">"used by KexGex to find primes for group exchange"</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-256', '_modulus_pack', 'link-94');">_modulus_pack</a></tt> </tt>
-</div><a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"> </tt>
-<a name="Transport._next_channel"></a><div id="Transport._next_channel-def"><a name="L1374"></a><tt class="py-lineno">1374</tt> <a class="py-toggle" href="#" id="Transport._next_channel-toggle" onclick="return toggle('Transport._next_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_next_channel">_next_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._next_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._next_channel-expanded"><a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"> <tt class="py-docstring">"you are holding the lock"</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-257', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffff</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffff</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chanid</tt> </tt>
-</div><a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> </tt>
-<a name="Transport._unlink_channel"></a><div id="Transport._unlink_channel-def"><a name="L1383"></a><tt class="py-lineno">1383</tt> <a class="py-toggle" href="#" id="Transport._unlink_channel-toggle" onclick="return toggle('Transport._unlink_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_unlink_channel">_unlink_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._unlink_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._unlink_channel-expanded"><a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-docstring">"used by a Channel to remove itself from the active channel list"</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-258" class="py-name" targets="Method paramiko.transport.ChannelMap.delete()=paramiko.transport.ChannelMap-class.html#delete"><a title="paramiko.transport.ChannelMap.delete" class="py-name" href="#" onclick="return doclink('link-258', 'delete', 'link-258');">delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"> </tt>
-<a name="Transport._send_message"></a><div id="Transport._send_message-def"><a name="L1387"></a><tt class="py-lineno">1387</tt> <a class="py-toggle" href="#" id="Transport._send_message-toggle" onclick="return toggle('Transport._send_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_message">_send_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._send_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_message-expanded"><a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">send_message</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> </tt>
-<a name="Transport._send_user_message"></a><div id="Transport._send_user_message-def"><a name="L1390"></a><tt class="py-lineno">1390</tt> <a class="py-toggle" href="#" id="Transport._send_user_message-toggle" onclick="return toggle('Transport._send_user_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_user_message">_send_user_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._send_user_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_user_message-expanded"><a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"><tt class="py-docstring"> send a message, but block if we're in key negotiation. this is used</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"><tt class="py-docstring"> for user-initiated requests.</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-259" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-256', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> <tt class="py-comment">### internals...</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> </tt>
+<a name="Transport._log"></a><div id="Transport._log-def"><a name="L1381"></a><tt class="py-lineno">1381</tt> <a class="py-toggle" href="#" id="Transport._log-toggle" onclick="return toggle('Transport._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_log">_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">,</tt> <tt class="py-param">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._log-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._log-expanded"><a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">issubclass</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">msg</tt><tt class="py-op">:</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-257', 'logger', 'link-108');">logger</a></tt><tt class="py-op">.</tt><tt id="link-258" class="py-name" targets="Method paramiko.logging22.logger.log()=paramiko.logging22.logger-class.html#log"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-258', 'log', 'link-258');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-259', 'logger', 'link-108');">logger</a></tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-260', 'log', 'link-258');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"> </tt>
+<a name="Transport._get_modulus_pack"></a><div id="Transport._get_modulus_pack-def"><a name="L1388"></a><tt class="py-lineno">1388</tt> <a class="py-toggle" href="#" id="Transport._get_modulus_pack-toggle" onclick="return toggle('Transport._get_modulus_pack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_modulus_pack">_get_modulus_pack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._get_modulus_pack-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_modulus_pack-expanded"><a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> <tt class="py-docstring">"used by KexGex to find primes for group exchange"</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-261', '_modulus_pack', 'link-98');">_modulus_pack</a></tt> </tt>
+</div><a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> </tt>
+<a name="Transport._next_channel"></a><div id="Transport._next_channel-def"><a name="L1392"></a><tt class="py-lineno">1392</tt> <a class="py-toggle" href="#" id="Transport._next_channel-toggle" onclick="return toggle('Transport._next_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_next_channel">_next_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._next_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._next_channel-expanded"><a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-docstring">"you are holding the lock"</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-262', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffff</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channel_counter</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffff</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">chanid</tt> </tt>
+</div><a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> </tt>
+<a name="Transport._unlink_channel"></a><div id="Transport._unlink_channel-def"><a name="L1401"></a><tt class="py-lineno">1401</tt> <a class="py-toggle" href="#" id="Transport._unlink_channel-toggle" onclick="return toggle('Transport._unlink_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_unlink_channel">_unlink_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._unlink_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._unlink_channel-expanded"><a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-docstring">"used by a Channel to remove itself from the active channel list"</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name" targets="Method paramiko.transport.ChannelMap.delete()=paramiko.transport.ChannelMap-class.html#delete"><a title="paramiko.transport.ChannelMap.delete" class="py-name" href="#" onclick="return doclink('link-263', 'delete', 'link-263');">delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> </tt>
+<a name="Transport._send_message"></a><div id="Transport._send_message-def"><a name="L1405"></a><tt class="py-lineno">1405</tt> <a class="py-toggle" href="#" id="Transport._send_message-toggle" onclick="return toggle('Transport._send_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_message">_send_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._send_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_message-expanded"><a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">send_message</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> </tt>
+<a name="Transport._send_user_message"></a><div id="Transport._send_user_message-def"><a name="L1408"></a><tt class="py-lineno">1408</tt> <a class="py-toggle" href="#" id="Transport._send_user_message-toggle" onclick="return toggle('Transport._send_user_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_user_message">_send_user_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._send_user_message-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_user_message-expanded"><a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"><tt class="py-docstring"> send a message, but block if we're in key negotiation. this is used</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"><tt class="py-docstring"> for user-initiated requests.</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-264" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -1929,93 +1949,113 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-259', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Dropping user packet because connection is dead.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1408"></a><tt class="py-lineno">1408</tt> <tt class="py-line"> </tt>
-<a name="Transport._set_K_H"></a><div id="Transport._set_K_H-def"><a name="L1409"></a><tt class="py-lineno">1409</tt> <a class="py-toggle" href="#" id="Transport._set_K_H-toggle" onclick="return toggle('Transport._set_K_H');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_set_K_H">_set_K_H</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">k</tt><tt class="py-op">,</tt> <tt class="py-param">h</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._set_K_H-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._set_K_H-expanded"><a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"> <tt class="py-docstring">"used by a kex object to set the K (root key) and H (exchange hash)"</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> </tt>
-</div><a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> </tt>
-<a name="Transport._expect_packet"></a><div id="Transport._expect_packet-def"><a name="L1416"></a><tt class="py-lineno">1416</tt> <a class="py-toggle" href="#" id="Transport._expect_packet-toggle" onclick="return toggle('Transport._expect_packet');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_expect_packet">_expect_packet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">ptypes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._expect_packet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._expect_packet-expanded"><a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> <tt class="py-docstring">"used by a kex object to register the next packet type it expects to see"</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">ptypes</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> </tt>
-<a name="Transport._verify_key"></a><div id="Transport._verify_key-def"><a name="L1420"></a><tt class="py-lineno">1420</tt> <a class="py-toggle" href="#" id="Transport._verify_key-toggle" onclick="return toggle('Transport._verify_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_verify_key">_verify_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">host_key</tt><tt class="py-op">,</tt> <tt class="py-param">sig</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._verify_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._verify_key-expanded"><a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="paramiko.Transport._key_info" class="py-name" href="#" onclick="return doclink('link-260', '_key_info', 'link-83');">_key_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt id="link-261" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-261', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-262" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-262', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown host key type'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name" targets="Method paramiko.DSSKey.verify_ssh_sig()=paramiko.DSSKey-class.html#verify_ssh_sig,Method paramiko.PKey.verify_ssh_sig()=paramiko.PKey-class.html#verify_ssh_sig,Method paramiko.RSAKey.verify_ssh_sig()=paramiko.RSAKey-class.html#verify_ssh_sig"><a title="paramiko.DSSKey.verify_ssh_sig
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-264', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Dropping user packet because connection is dead.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt class="py-name">isSet</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_timeout</tt><tt class="py-op">:</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-265" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-265', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Key-exchange timed out waiting for key negotiation'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"> </tt>
+<a name="Transport._set_K_H"></a><div id="Transport._set_K_H-def"><a name="L1430"></a><tt class="py-lineno">1430</tt> <a class="py-toggle" href="#" id="Transport._set_K_H-toggle" onclick="return toggle('Transport._set_K_H');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_set_K_H">_set_K_H</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">k</tt><tt class="py-op">,</tt> <tt class="py-param">h</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._set_K_H-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._set_K_H-expanded"><a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> <tt class="py-docstring">"used by a kex object to set the K (root key) and H (exchange hash)"</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> </tt>
+</div><a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> </tt>
+<a name="Transport._expect_packet"></a><div id="Transport._expect_packet-def"><a name="L1437"></a><tt class="py-lineno">1437</tt> <a class="py-toggle" href="#" id="Transport._expect_packet-toggle" onclick="return toggle('Transport._expect_packet');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_expect_packet">_expect_packet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">ptypes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._expect_packet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._expect_packet-expanded"><a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> <tt class="py-docstring">"used by a kex object to register the next packet type it expects to see"</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">ptypes</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"> </tt>
+<a name="Transport._verify_key"></a><div id="Transport._verify_key-def"><a name="L1441"></a><tt class="py-lineno">1441</tt> <a class="py-toggle" href="#" id="Transport._verify_key-toggle" onclick="return toggle('Transport._verify_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_verify_key">_verify_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">host_key</tt><tt class="py-op">,</tt> <tt class="py-param">sig</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._verify_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._verify_key-expanded"><a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="paramiko.Transport._key_info" class="py-name" href="#" onclick="return doclink('link-266', '_key_info', 'link-87');">_key_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt id="link-267" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-267', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">host_key</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-268" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-268', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown host key type'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name" targets="Method paramiko.DSSKey.verify_ssh_sig()=paramiko.DSSKey-class.html#verify_ssh_sig,Method paramiko.PKey.verify_ssh_sig()=paramiko.PKey-class.html#verify_ssh_sig,Method paramiko.RSAKey.verify_ssh_sig()=paramiko.RSAKey-class.html#verify_ssh_sig"><a title="paramiko.DSSKey.verify_ssh_sig
paramiko.PKey.verify_ssh_sig
-paramiko.RSAKey.verify_ssh_sig" class="py-name" href="#" onclick="return doclink('link-263', 'verify_ssh_sig', 'link-263');">verify_ssh_sig</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">,</tt> <tt id="link-264" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-264', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-265" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-265', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Signature verification (%s) failed. Boo. Robey should debug this.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-</div><a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> </tt>
-<a name="Transport._compute_key"></a><div id="Transport._compute_key-def"><a name="L1428"></a><tt class="py-lineno">1428</tt> <a class="py-toggle" href="#" id="Transport._compute_key-toggle" onclick="return toggle('Transport._compute_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_compute_key">_compute_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._compute_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._compute_key-expanded"><a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"> <tt class="py-docstring">"id is 'A' - 'F' for the various keys used by ssh"</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-266" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-266', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-267" class="py-name" targets="Method paramiko.Message.add_mpint()=paramiko.Message-class.html#add_mpint"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-267', 'add_mpint', 'link-267');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-268', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-269', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-270', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">sofar</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">nbytes</tt><tt class="py-op">:</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-271" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-271', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-272', 'add_mpint', 'link-267');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-273', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-274', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">sofar</tt><tt class="py-op">)</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-name">sofar</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">nbytes</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> </tt>
-<a name="Transport._get_cipher"></a><div id="Transport._get_cipher-def"><a name="L1446"></a><tt class="py-lineno">1446</tt> <a class="py-toggle" href="#" id="Transport._get_cipher-toggle" onclick="return toggle('Transport._get_cipher');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_cipher">_get_cipher</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">iv</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._get_cipher-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_cipher-expanded"><a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-275" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-275', 'name', 'link-56');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-276', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-277" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-277', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown client cipher '</tt> <tt class="py-op">+</tt> <tt id="link-278" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-278', 'name', 'link-56');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-279" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-279', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-280" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-280', 'name', 'link-56');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-281', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-282" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-282', 'name', 'link-56');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">iv</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"> </tt>
-<a name="Transport._set_x11_handler"></a><div id="Transport._set_x11_handler-def"><a name="L1451"></a><tt class="py-lineno">1451</tt> <a class="py-toggle" href="#" id="Transport._set_x11_handler-toggle" onclick="return toggle('Transport._set_x11_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_set_x11_handler">_set_x11_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._set_x11_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._set_x11_handler-expanded"><a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"> <tt class="py-comment"># only called if a channel has turned on x11 forwarding</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"> <tt class="py-comment"># by default, use the same mechanism as accept()</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">def</tt> <tt class="py-def-name">default_handler</tt><tt class="py-op">(</tt><tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt id="link-283" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-283', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">default_handler</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-</div><a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> </tt>
-<a name="Transport._queue_incoming_channel"></a><div id="Transport._queue_incoming_channel-def"><a name="L1461"></a><tt class="py-lineno">1461</tt> <a class="py-toggle" href="#" id="Transport._queue_incoming_channel-toggle" onclick="return toggle('Transport._queue_incoming_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_queue_incoming_channel">_queue_incoming_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._queue_incoming_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._queue_incoming_channel-expanded"><a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-284" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-284', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">notify</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> </tt>
-<a name="Transport.run"></a><div id="Transport.run-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="Transport.run-toggle" onclick="return toggle('Transport.run');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport.run-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.run-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-comment"># (use the exposed "run" method, because if we specify a thread target</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># of a private method, threading.Thread will keep a reference to it</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># indefinitely, creating a GC cycle and not letting Transport ever be</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># GC'd. it's a bug in Thread.)</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> <tt class="py-comment"># active=True occurs before the thread is launched, to avoid a race</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-285" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-285', '_active_threads', 'link-45');">_active_threads</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-286" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.RSAKey.verify_ssh_sig" class="py-name" href="#" onclick="return doclink('link-269', 'verify_ssh_sig', 'link-269');">verify_ssh_sig</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">,</tt> <tt id="link-270" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-270', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">sig</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-271" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-271', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Signature verification (%s) failed.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+</div><a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> </tt>
+<a name="Transport._compute_key"></a><div id="Transport._compute_key-def"><a name="L1449"></a><tt class="py-lineno">1449</tt> <a class="py-toggle" href="#" id="Transport._compute_key-toggle" onclick="return toggle('Transport._compute_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_compute_key">_compute_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._compute_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._compute_key-expanded"><a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"> <tt class="py-docstring">"id is 'A' - 'F' for the various keys used by ssh"</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-272" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-272', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name" targets="Method paramiko.Message.add_mpint()=paramiko.Message-class.html#add_mpint"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-273', 'add_mpint', 'link-273');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-274', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-275', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-276', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">sofar</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-277', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">nbytes</tt><tt class="py-op">:</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-278" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-278', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-279" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-279', 'add_mpint', 'link-273');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt><tt class="py-op">)</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-280', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">H</tt><tt class="py-op">)</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-281', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">sofar</tt><tt class="py-op">)</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">SHA</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-282', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-name">sofar</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">nbytes</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> </tt>
+<a name="Transport._get_cipher"></a><div id="Transport._get_cipher-def"><a name="L1467"></a><tt class="py-lineno">1467</tt> <a class="py-toggle" href="#" id="Transport._get_cipher-toggle" onclick="return toggle('Transport._get_cipher');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_cipher">_get_cipher</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">iv</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._get_cipher-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_cipher-expanded"><a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-283" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-283', 'name', 'link-60');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-284', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-285" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-285', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown client cipher '</tt> <tt class="py-op">+</tt> <tt id="link-286" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-286', 'name', 'link-60');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-287" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-287', 'name', 'link-60');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'arcfour128'</tt><tt class="py-op">,</tt> <tt class="py-string">'arcfour256'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"> <tt class="py-comment"># arcfour cipher</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt class="py-name">cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-288', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-289" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-289', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-290', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"> <tt class="py-comment"># as per RFC 4345, the first 1536 bytes of keystream</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-comment"># generated by the cipher MUST be discarded</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> <tt class="py-name">cipher</tt><tt class="py-op">.</tt><tt class="py-name">encrypt</tt><tt class="py-op">(</tt><tt class="py-string">" "</tt> <tt class="py-op">*</tt> <tt class="py-number">1536</tt><tt class="py-op">)</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cipher</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-291" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-291', 'name', 'link-60');">name</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"-ctr"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-comment"># CTR modes, we need a counter</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt id="link-292" class="py-name"><a title="paramiko.util.Counter" class="py-name" href="#" onclick="return doclink('link-292', 'Counter', 'link-45');">Counter</a></tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-293', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">nbits</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-294', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-295" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-295', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'block-size'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">initial_value</tt><tt class="py-op">=</tt><tt id="link-296" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-296', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-297" class="py-name" targets="Function paramiko.util.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-297', 'inflate_long', 'link-297');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">iv</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-298', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-299" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-299', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-300', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-301', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-302" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-302', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">iv</tt><tt class="py-op">,</tt> <tt class="py-name">counter</tt><tt class="py-op">)</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-303" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-303', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-304" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-304', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-305', 'new', 'link-277');">new</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-306', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt id="link-307" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-307', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'mode'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">iv</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"> </tt>
+<a name="Transport._set_x11_handler"></a><div id="Transport._set_x11_handler-def"><a name="L1484"></a><tt class="py-lineno">1484</tt> <a class="py-toggle" href="#" id="Transport._set_x11_handler-toggle" onclick="return toggle('Transport._set_x11_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_set_x11_handler">_set_x11_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._set_x11_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._set_x11_handler-expanded"><a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"> <tt class="py-comment"># only called if a channel has turned on x11 forwarding</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> <tt class="py-comment"># by default, use the same mechanism as accept()</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">default_handler</tt><tt class="py-op">(</tt><tt class="py-param">channel</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-param">src_addr</tt><tt class="py-op">,</tt> <tt class="py-param">src_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt id="link-308" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-308', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">default_handler</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+</div><a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> </tt>
+<a name="Transport._queue_incoming_channel"></a><div id="Transport._queue_incoming_channel-def"><a name="L1494"></a><tt class="py-lineno">1494</tt> <a class="py-toggle" href="#" id="Transport._queue_incoming_channel-toggle" onclick="return toggle('Transport._queue_incoming_channel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_queue_incoming_channel">_queue_incoming_channel</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">channel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._queue_incoming_channel-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._queue_incoming_channel-expanded"><a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accepts</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-309" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-309', 'channel', 'link-5');">channel</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">notify</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> </tt>
+<a name="Transport.run"></a><div id="Transport.run-def"><a name="L1502"></a><tt class="py-lineno">1502</tt> <a class="py-toggle" href="#" id="Transport.run-toggle" onclick="return toggle('Transport.run');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport.run-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport.run-expanded"><a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> <tt class="py-comment"># (use the exposed "run" method, because if we specify a thread target</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt> <tt class="py-line"> <tt class="py-comment"># of a private method, threading.Thread will keep a reference to it</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt class="py-comment"># indefinitely, creating a GC cycle and not letting Transport ever be</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"> <tt class="py-comment"># GC'd. it's a bug in Thread.)</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> <tt class="py-comment"># active=True occurs before the thread is launched, to avoid a race</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt> <tt class="py-line"> <tt id="link-310" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-310', '_active_threads', 'link-49');">_active_threads</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-311" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2036,9 +2076,9 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-286', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'starting thread (server mode): %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-287" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-311', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'starting thread (server mode): %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-312" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2059,12 +2099,12 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-287', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'starting thread (client mode): %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">write_all</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt> <tt class="py-op">+</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_banner</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-288" class="py-name" targets="Variable paramiko.auth_handler.MSG_KEXINIT=paramiko.auth_handler-module.html#MSG_KEXINIT,Variable paramiko.channel.MSG_KEXINIT=paramiko.channel-module.html#MSG_KEXINIT,Variable paramiko.client.MSG_KEXINIT=paramiko.client-module.html#MSG_KEXINIT,Variable paramiko.common.MSG_KEXINIT=paramiko.common-module.html#MSG_KEXINIT,Variable paramiko.dsskey.MSG_KEXINIT=paramiko.dsskey-module.html#MSG_KEXINIT,Variable paramiko.hostkeys.MSG_KEXINIT=paramiko.hostkeys-module.html#MSG_KEXINIT,Variable paramiko.kex_gex.MSG_KEXINIT=paramiko.kex_gex-module.html#MSG_KEXINIT,Variable paramiko.kex_group1.MSG_KEXINIT=paramiko.kex_group1-module.html#MSG_KEXINIT,Variable paramiko.packet.MSG_KEXINIT=paramiko.packet-module.html#MSG_KEXINIT,Variable paramiko.pkey.MSG_KEXINIT=paramiko.pkey-module.html#MSG_KEXINIT,Variable paramiko.rsakey.MSG_KEXINIT=paramiko.rsakey-module.html#MSG_KEXINIT,Variable paramiko.server.MSG_KEXINIT=paramiko.server-module.html#MSG_KEXINIT,Variable paramiko.sftp.MSG_KEXINIT=paramiko.sftp-module.html#MSG_KEXINIT,Variable paramiko.sftp_attr.MSG_KEXINIT=paramiko.sftp_attr-module.html#MSG_KEXINIT,Variable paramiko.sftp_client.MSG_KEXINIT=paramiko.sftp_client-module.html#MSG_KEXINIT,Variable paramiko.sftp_file.MSG_KEXINIT=paramiko.sftp_file-module.html#MSG_KEXINIT,Variable paramiko.sftp_handle.MSG_KEXINIT=paramiko.sftp_handle-module.html#MSG_KEXINIT,Variable paramiko.sftp_server.MSG_KEXINIT=paramiko.sftp_server-module.html#MSG_KEXINIT,Variable paramiko.sftp_si.MSG_KEXINIT=paramiko.sftp_si-module.html#MSG_KEXINIT,Variable paramiko.transport.MSG_KEXINIT=paramiko.transport-module.html#MSG_KEXINIT,Variable paramiko.util.MSG_KEXINIT=paramiko.util-module.html#MSG_KEXINIT"><a title="paramiko.auth_handler.MSG_KEXINIT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-312', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'starting thread (client mode): %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">hex</tt><tt class="py-op">(</tt><tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">write_all</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_version</tt> <tt class="py-op">+</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_banner</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-313" class="py-name" targets="Variable paramiko.auth_handler.MSG_KEXINIT=paramiko.auth_handler-module.html#MSG_KEXINIT,Variable paramiko.channel.MSG_KEXINIT=paramiko.channel-module.html#MSG_KEXINIT,Variable paramiko.client.MSG_KEXINIT=paramiko.client-module.html#MSG_KEXINIT,Variable paramiko.common.MSG_KEXINIT=paramiko.common-module.html#MSG_KEXINIT,Variable paramiko.dsskey.MSG_KEXINIT=paramiko.dsskey-module.html#MSG_KEXINIT,Variable paramiko.hostkeys.MSG_KEXINIT=paramiko.hostkeys-module.html#MSG_KEXINIT,Variable paramiko.kex_gex.MSG_KEXINIT=paramiko.kex_gex-module.html#MSG_KEXINIT,Variable paramiko.kex_group1.MSG_KEXINIT=paramiko.kex_group1-module.html#MSG_KEXINIT,Variable paramiko.packet.MSG_KEXINIT=paramiko.packet-module.html#MSG_KEXINIT,Variable paramiko.pkey.MSG_KEXINIT=paramiko.pkey-module.html#MSG_KEXINIT,Variable paramiko.rsakey.MSG_KEXINIT=paramiko.rsakey-module.html#MSG_KEXINIT,Variable paramiko.server.MSG_KEXINIT=paramiko.server-module.html#MSG_KEXINIT,Variable paramiko.sftp.MSG_KEXINIT=paramiko.sftp-module.html#MSG_KEXINIT,Variable paramiko.sftp_attr.MSG_KEXINIT=paramiko.sftp_attr-module.html#MSG_KEXINIT,Variable paramiko.sftp_client.MSG_KEXINIT=paramiko.sftp_client-module.html#MSG_KEXINIT,Variable paramiko.sftp_file.MSG_KEXINIT=paramiko.sftp_file-module.html#MSG_KEXINIT,Variable paramiko.sftp_handle.MSG_KEXINIT=paramiko.sftp_handle-module.html#MSG_KEXINIT,Variable paramiko.sftp_server.MSG_KEXINIT=paramiko.sftp_server-module.html#MSG_KEXINIT,Variable paramiko.sftp_si.MSG_KEXINIT=paramiko.sftp_si-module.html#MSG_KEXINIT,Variable paramiko.transport.MSG_KEXINIT=paramiko.transport-module.html#MSG_KEXINIT,Variable paramiko.util.MSG_KEXINIT=paramiko.util-module.html#MSG_KEXINIT"><a title="paramiko.auth_handler.MSG_KEXINIT
paramiko.channel.MSG_KEXINIT
paramiko.client.MSG_KEXINIT
paramiko.common.MSG_KEXINIT
@@ -2084,16 +2124,16 @@ paramiko.sftp_handle.MSG_KEXINIT
paramiko.sftp_server.MSG_KEXINIT
paramiko.sftp_si.MSG_KEXINIT
paramiko.transport.MSG_KEXINIT
-paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-288', 'MSG_KEXINIT', 'link-288');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt><tt class="py-op">:</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"> <tt class="py-name">ptype</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">read_message</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-289" class="py-name"><a title="paramiko.packet.NeedRekeyException" class="py-name" href="#" onclick="return doclink('link-289', 'NeedRekeyException', 'link-27');">NeedRekeyException</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-290" class="py-name"><a title="paramiko.auth_handler.MSG_IGNORE
+paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-313', 'MSG_KEXINIT', 'link-313');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt><tt class="py-op">:</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"> <tt class="py-name">ptype</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">read_message</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-314" class="py-name"><a title="paramiko.packet.NeedRekeyException" class="py-name" href="#" onclick="return doclink('link-314', 'NeedRekeyException', 'link-27');">NeedRekeyException</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-315" class="py-name"><a title="paramiko.auth_handler.MSG_IGNORE
paramiko.channel.MSG_IGNORE
paramiko.client.MSG_IGNORE
paramiko.common.MSG_IGNORE
@@ -2113,9 +2153,9 @@ paramiko.sftp_handle.MSG_IGNORE
paramiko.sftp_server.MSG_IGNORE
paramiko.sftp_si.MSG_IGNORE
paramiko.transport.MSG_IGNORE
-paramiko.util.MSG_IGNORE" class="py-name" href="#" onclick="return doclink('link-290', 'MSG_IGNORE', 'link-169');">MSG_IGNORE</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-291" class="py-name" targets="Variable paramiko.auth_handler.MSG_DISCONNECT=paramiko.auth_handler-module.html#MSG_DISCONNECT,Variable paramiko.channel.MSG_DISCONNECT=paramiko.channel-module.html#MSG_DISCONNECT,Variable paramiko.client.MSG_DISCONNECT=paramiko.client-module.html#MSG_DISCONNECT,Variable paramiko.common.MSG_DISCONNECT=paramiko.common-module.html#MSG_DISCONNECT,Variable paramiko.dsskey.MSG_DISCONNECT=paramiko.dsskey-module.html#MSG_DISCONNECT,Variable paramiko.hostkeys.MSG_DISCONNECT=paramiko.hostkeys-module.html#MSG_DISCONNECT,Variable paramiko.kex_gex.MSG_DISCONNECT=paramiko.kex_gex-module.html#MSG_DISCONNECT,Variable paramiko.kex_group1.MSG_DISCONNECT=paramiko.kex_group1-module.html#MSG_DISCONNECT,Variable paramiko.packet.MSG_DISCONNECT=paramiko.packet-module.html#MSG_DISCONNECT,Variable paramiko.pkey.MSG_DISCONNECT=paramiko.pkey-module.html#MSG_DISCONNECT,Variable paramiko.rsakey.MSG_DISCONNECT=paramiko.rsakey-module.html#MSG_DISCONNECT,Variable paramiko.server.MSG_DISCONNECT=paramiko.server-module.html#MSG_DISCONNECT,Variable paramiko.sftp.MSG_DISCONNECT=paramiko.sftp-module.html#MSG_DISCONNECT,Variable paramiko.sftp_attr.MSG_DISCONNECT=paramiko.sftp_attr-module.html#MSG_DISCONNECT,Variable paramiko.sftp_client.MSG_DISCONNECT=paramiko.sftp_client-module.html#MSG_DISCONNECT,Variable paramiko.sftp_file.MSG_DISCONNECT=paramiko.sftp_file-module.html#MSG_DISCONNECT,Variable paramiko.sftp_handle.MSG_DISCONNECT=paramiko.sftp_handle-module.html#MSG_DISCONNECT,Variable paramiko.sftp_server.MSG_DISCONNECT=paramiko.sftp_server-module.html#MSG_DISCONNECT,Variable paramiko.sftp_si.MSG_DISCONNECT=paramiko.sftp_si-module.html#MSG_DISCONNECT,Variable paramiko.transport.MSG_DISCONNECT=paramiko.transport-module.html#MSG_DISCONNECT,Variable paramiko.util.MSG_DISCONNECT=paramiko.util-module.html#MSG_DISCONNECT"><a title="paramiko.auth_handler.MSG_DISCONNECT
+paramiko.util.MSG_IGNORE" class="py-name" href="#" onclick="return doclink('link-315', 'MSG_IGNORE', 'link-174');">MSG_IGNORE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-316" class="py-name" targets="Variable paramiko.auth_handler.MSG_DISCONNECT=paramiko.auth_handler-module.html#MSG_DISCONNECT,Variable paramiko.channel.MSG_DISCONNECT=paramiko.channel-module.html#MSG_DISCONNECT,Variable paramiko.client.MSG_DISCONNECT=paramiko.client-module.html#MSG_DISCONNECT,Variable paramiko.common.MSG_DISCONNECT=paramiko.common-module.html#MSG_DISCONNECT,Variable paramiko.dsskey.MSG_DISCONNECT=paramiko.dsskey-module.html#MSG_DISCONNECT,Variable paramiko.hostkeys.MSG_DISCONNECT=paramiko.hostkeys-module.html#MSG_DISCONNECT,Variable paramiko.kex_gex.MSG_DISCONNECT=paramiko.kex_gex-module.html#MSG_DISCONNECT,Variable paramiko.kex_group1.MSG_DISCONNECT=paramiko.kex_group1-module.html#MSG_DISCONNECT,Variable paramiko.packet.MSG_DISCONNECT=paramiko.packet-module.html#MSG_DISCONNECT,Variable paramiko.pkey.MSG_DISCONNECT=paramiko.pkey-module.html#MSG_DISCONNECT,Variable paramiko.rsakey.MSG_DISCONNECT=paramiko.rsakey-module.html#MSG_DISCONNECT,Variable paramiko.server.MSG_DISCONNECT=paramiko.server-module.html#MSG_DISCONNECT,Variable paramiko.sftp.MSG_DISCONNECT=paramiko.sftp-module.html#MSG_DISCONNECT,Variable paramiko.sftp_attr.MSG_DISCONNECT=paramiko.sftp_attr-module.html#MSG_DISCONNECT,Variable paramiko.sftp_client.MSG_DISCONNECT=paramiko.sftp_client-module.html#MSG_DISCONNECT,Variable paramiko.sftp_file.MSG_DISCONNECT=paramiko.sftp_file-module.html#MSG_DISCONNECT,Variable paramiko.sftp_handle.MSG_DISCONNECT=paramiko.sftp_handle-module.html#MSG_DISCONNECT,Variable paramiko.sftp_server.MSG_DISCONNECT=paramiko.sftp_server-module.html#MSG_DISCONNECT,Variable paramiko.sftp_si.MSG_DISCONNECT=paramiko.sftp_si-module.html#MSG_DISCONNECT,Variable paramiko.transport.MSG_DISCONNECT=paramiko.transport-module.html#MSG_DISCONNECT,Variable paramiko.util.MSG_DISCONNECT=paramiko.util-module.html#MSG_DISCONNECT"><a title="paramiko.auth_handler.MSG_DISCONNECT
paramiko.channel.MSG_DISCONNECT
paramiko.client.MSG_DISCONNECT
paramiko.common.MSG_DISCONNECT
@@ -2135,10 +2175,10 @@ paramiko.sftp_handle.MSG_DISCONNECT
paramiko.sftp_server.MSG_DISCONNECT
paramiko.sftp_si.MSG_DISCONNECT
paramiko.transport.MSG_DISCONNECT
-paramiko.util.MSG_DISCONNECT" class="py-name" href="#" onclick="return doclink('link-291', 'MSG_DISCONNECT', 'link-291');">MSG_DISCONNECT</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_disconnect</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="paramiko.Agent.close
+paramiko.util.MSG_DISCONNECT" class="py-name" href="#" onclick="return doclink('link-316', 'MSG_DISCONNECT', 'link-316');">MSG_DISCONNECT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_disconnect</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -2149,9 +2189,9 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-292', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-293" class="py-name" targets="Variable paramiko.auth_handler.MSG_DEBUG=paramiko.auth_handler-module.html#MSG_DEBUG,Variable paramiko.channel.MSG_DEBUG=paramiko.channel-module.html#MSG_DEBUG,Variable paramiko.client.MSG_DEBUG=paramiko.client-module.html#MSG_DEBUG,Variable paramiko.common.MSG_DEBUG=paramiko.common-module.html#MSG_DEBUG,Variable paramiko.dsskey.MSG_DEBUG=paramiko.dsskey-module.html#MSG_DEBUG,Variable paramiko.hostkeys.MSG_DEBUG=paramiko.hostkeys-module.html#MSG_DEBUG,Variable paramiko.kex_gex.MSG_DEBUG=paramiko.kex_gex-module.html#MSG_DEBUG,Variable paramiko.kex_group1.MSG_DEBUG=paramiko.kex_group1-module.html#MSG_DEBUG,Variable paramiko.packet.MSG_DEBUG=paramiko.packet-module.html#MSG_DEBUG,Variable paramiko.pkey.MSG_DEBUG=paramiko.pkey-module.html#MSG_DEBUG,Variable paramiko.rsakey.MSG_DEBUG=paramiko.rsakey-module.html#MSG_DEBUG,Variable paramiko.server.MSG_DEBUG=paramiko.server-module.html#MSG_DEBUG,Variable paramiko.sftp.MSG_DEBUG=paramiko.sftp-module.html#MSG_DEBUG,Variable paramiko.sftp_attr.MSG_DEBUG=paramiko.sftp_attr-module.html#MSG_DEBUG,Variable paramiko.sftp_client.MSG_DEBUG=paramiko.sftp_client-module.html#MSG_DEBUG,Variable paramiko.sftp_file.MSG_DEBUG=paramiko.sftp_file-module.html#MSG_DEBUG,Variable paramiko.sftp_handle.MSG_DEBUG=paramiko.sftp_handle-module.html#MSG_DEBUG,Variable paramiko.sftp_server.MSG_DEBUG=paramiko.sftp_server-module.html#MSG_DEBUG,Variable paramiko.sftp_si.MSG_DEBUG=paramiko.sftp_si-module.html#MSG_DEBUG,Variable paramiko.transport.MSG_DEBUG=paramiko.transport-module.html#MSG_DEBUG,Variable paramiko.util.MSG_DEBUG=paramiko.util-module.html#MSG_DEBUG"><a title="paramiko.auth_handler.MSG_DEBUG
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-317', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-318" class="py-name" targets="Variable paramiko.auth_handler.MSG_DEBUG=paramiko.auth_handler-module.html#MSG_DEBUG,Variable paramiko.channel.MSG_DEBUG=paramiko.channel-module.html#MSG_DEBUG,Variable paramiko.client.MSG_DEBUG=paramiko.client-module.html#MSG_DEBUG,Variable paramiko.common.MSG_DEBUG=paramiko.common-module.html#MSG_DEBUG,Variable paramiko.dsskey.MSG_DEBUG=paramiko.dsskey-module.html#MSG_DEBUG,Variable paramiko.hostkeys.MSG_DEBUG=paramiko.hostkeys-module.html#MSG_DEBUG,Variable paramiko.kex_gex.MSG_DEBUG=paramiko.kex_gex-module.html#MSG_DEBUG,Variable paramiko.kex_group1.MSG_DEBUG=paramiko.kex_group1-module.html#MSG_DEBUG,Variable paramiko.packet.MSG_DEBUG=paramiko.packet-module.html#MSG_DEBUG,Variable paramiko.pkey.MSG_DEBUG=paramiko.pkey-module.html#MSG_DEBUG,Variable paramiko.rsakey.MSG_DEBUG=paramiko.rsakey-module.html#MSG_DEBUG,Variable paramiko.server.MSG_DEBUG=paramiko.server-module.html#MSG_DEBUG,Variable paramiko.sftp.MSG_DEBUG=paramiko.sftp-module.html#MSG_DEBUG,Variable paramiko.sftp_attr.MSG_DEBUG=paramiko.sftp_attr-module.html#MSG_DEBUG,Variable paramiko.sftp_client.MSG_DEBUG=paramiko.sftp_client-module.html#MSG_DEBUG,Variable paramiko.sftp_file.MSG_DEBUG=paramiko.sftp_file-module.html#MSG_DEBUG,Variable paramiko.sftp_handle.MSG_DEBUG=paramiko.sftp_handle-module.html#MSG_DEBUG,Variable paramiko.sftp_server.MSG_DEBUG=paramiko.sftp_server-module.html#MSG_DEBUG,Variable paramiko.sftp_si.MSG_DEBUG=paramiko.sftp_si-module.html#MSG_DEBUG,Variable paramiko.transport.MSG_DEBUG=paramiko.transport-module.html#MSG_DEBUG,Variable paramiko.util.MSG_DEBUG=paramiko.util-module.html#MSG_DEBUG"><a title="paramiko.auth_handler.MSG_DEBUG
paramiko.channel.MSG_DEBUG
paramiko.client.MSG_DEBUG
paramiko.common.MSG_DEBUG
@@ -2171,28 +2211,28 @@ paramiko.sftp_handle.MSG_DEBUG
paramiko.sftp_server.MSG_DEBUG
paramiko.sftp_si.MSG_DEBUG
paramiko.transport.MSG_DEBUG
-paramiko.util.MSG_DEBUG" class="py-name" href="#" onclick="return doclink('link-293', 'MSG_DEBUG', 'link-293');">MSG_DEBUG</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_debug</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">:</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-294" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-294', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expecting packet from %r, got %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">,</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">30</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">39</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name" targets="Method paramiko.kex_gex.KexGex.parse_next()=paramiko.kex_gex.KexGex-class.html#parse_next,Method paramiko.kex_group1.KexGroup1.parse_next()=paramiko.kex_group1.KexGroup1-class.html#parse_next"><a title="paramiko.kex_gex.KexGex.parse_next
-paramiko.kex_group1.KexGroup1.parse_next" class="py-name" href="#" onclick="return doclink('link-295', 'parse_next', 'link-295');">parse_next</a></tt><tt class="py-op">(</tt><tt class="py-name">ptype</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name" targets="Variable paramiko.Transport._handler_table=paramiko.Transport-class.html#_handler_table"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-296', '_handler_table', 'link-296');">_handler_table</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-297', '_handler_table', 'link-296');">_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name" targets="Variable paramiko.Transport._channel_handler_table=paramiko.Transport-class.html#_channel_handler_table"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-298', '_channel_handler_table', 'link-298');">_channel_handler_table</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-299', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-300', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-301', '_channel_handler_table', 'link-298');">_channel_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">:</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-302" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_DEBUG" class="py-name" href="#" onclick="return doclink('link-318', 'MSG_DEBUG', 'link-318');">MSG_DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_debug</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">:</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-319" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-319', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expecting packet from %r, got %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt><tt class="py-op">,</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">30</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">39</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt><tt class="py-op">.</tt><tt id="link-320" class="py-name" targets="Method paramiko.kex_gex.KexGex.parse_next()=paramiko.kex_gex.KexGex-class.html#parse_next,Method paramiko.kex_group1.KexGroup1.parse_next()=paramiko.kex_group1.KexGroup1-class.html#parse_next"><a title="paramiko.kex_gex.KexGex.parse_next
+paramiko.kex_group1.KexGroup1.parse_next" class="py-name" href="#" onclick="return doclink('link-320', 'parse_next', 'link-320');">parse_next</a></tt><tt class="py-op">(</tt><tt class="py-name">ptype</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt> <tt class="py-line"> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name" targets="Variable paramiko.Transport._handler_table=paramiko.Transport-class.html#_handler_table"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-321', '_handler_table', 'link-321');">_handler_table</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-322', '_handler_table', 'link-321');">_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name" targets="Variable paramiko.Transport._channel_handler_table=paramiko.Transport-class.html#_channel_handler_table"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-323', '_channel_handler_table', 'link-323');">_channel_handler_table</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-324', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-325', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-326', '_channel_handler_table', 'link-323');">_channel_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">:</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-327" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2213,9 +2253,9 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-302', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Ignoring message for dead channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-303" class="py-name" targets="Variable paramiko.auth_handler.ERROR=paramiko.auth_handler-module.html#ERROR,Variable paramiko.channel.ERROR=paramiko.channel-module.html#ERROR,Variable paramiko.client.ERROR=paramiko.client-module.html#ERROR,Variable paramiko.common.ERROR=paramiko.common-module.html#ERROR,Variable paramiko.dsskey.ERROR=paramiko.dsskey-module.html#ERROR,Variable paramiko.hostkeys.ERROR=paramiko.hostkeys-module.html#ERROR,Variable paramiko.kex_gex.ERROR=paramiko.kex_gex-module.html#ERROR,Variable paramiko.kex_group1.ERROR=paramiko.kex_group1-module.html#ERROR,Variable paramiko.logging22.ERROR=paramiko.logging22-module.html#ERROR,Variable paramiko.packet.ERROR=paramiko.packet-module.html#ERROR,Variable paramiko.pkey.ERROR=paramiko.pkey-module.html#ERROR,Variable paramiko.rsakey.ERROR=paramiko.rsakey-module.html#ERROR,Variable paramiko.server.ERROR=paramiko.server-module.html#ERROR,Variable paramiko.sftp.ERROR=paramiko.sftp-module.html#ERROR,Variable paramiko.sftp_attr.ERROR=paramiko.sftp_attr-module.html#ERROR,Variable paramiko.sftp_client.ERROR=paramiko.sftp_client-module.html#ERROR,Variable paramiko.sftp_file.ERROR=paramiko.sftp_file-module.html#ERROR,Variable paramiko.sftp_handle.ERROR=paramiko.sftp_handle-module.html#ERROR,Variable paramiko.sftp_server.ERROR=paramiko.sftp_server-module.html#ERROR,Variable paramiko.sftp_si.ERROR=paramiko.sftp_si-module.html#ERROR,Variable paramiko.transport.ERROR=paramiko.transport-module.html#ERROR,Variable paramiko.util.ERROR=paramiko.util-module.html#ERROR"><a title="paramiko.auth_handler.ERROR
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-327', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Ignoring message for dead channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-328" class="py-name" targets="Variable paramiko.auth_handler.ERROR=paramiko.auth_handler-module.html#ERROR,Variable paramiko.channel.ERROR=paramiko.channel-module.html#ERROR,Variable paramiko.client.ERROR=paramiko.client-module.html#ERROR,Variable paramiko.common.ERROR=paramiko.common-module.html#ERROR,Variable paramiko.dsskey.ERROR=paramiko.dsskey-module.html#ERROR,Variable paramiko.hostkeys.ERROR=paramiko.hostkeys-module.html#ERROR,Variable paramiko.kex_gex.ERROR=paramiko.kex_gex-module.html#ERROR,Variable paramiko.kex_group1.ERROR=paramiko.kex_group1-module.html#ERROR,Variable paramiko.logging22.ERROR=paramiko.logging22-module.html#ERROR,Variable paramiko.packet.ERROR=paramiko.packet-module.html#ERROR,Variable paramiko.pkey.ERROR=paramiko.pkey-module.html#ERROR,Variable paramiko.rsakey.ERROR=paramiko.rsakey-module.html#ERROR,Variable paramiko.server.ERROR=paramiko.server-module.html#ERROR,Variable paramiko.sftp.ERROR=paramiko.sftp-module.html#ERROR,Variable paramiko.sftp_attr.ERROR=paramiko.sftp_attr-module.html#ERROR,Variable paramiko.sftp_client.ERROR=paramiko.sftp_client-module.html#ERROR,Variable paramiko.sftp_file.ERROR=paramiko.sftp_file-module.html#ERROR,Variable paramiko.sftp_handle.ERROR=paramiko.sftp_handle-module.html#ERROR,Variable paramiko.sftp_server.ERROR=paramiko.sftp_server-module.html#ERROR,Variable paramiko.sftp_si.ERROR=paramiko.sftp_si-module.html#ERROR,Variable paramiko.transport.ERROR=paramiko.transport-module.html#ERROR,Variable paramiko.util.ERROR=paramiko.util-module.html#ERROR"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2236,9 +2276,9 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-303', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Channel request for unknown channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="paramiko.Agent.close
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-328', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Channel request for unknown channel %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -2249,11 +2289,11 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-304', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-305', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-306', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-307', '_handler_table', 'link-296');">_handler_table</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-308', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-309', '_handler_table', 'link-296');">_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-310', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-311" class="py-name" targets="Variable paramiko.auth_handler.WARNING=paramiko.auth_handler-module.html#WARNING,Variable paramiko.channel.WARNING=paramiko.channel-module.html#WARNING,Variable paramiko.client.WARNING=paramiko.client-module.html#WARNING,Variable paramiko.common.WARNING=paramiko.common-module.html#WARNING,Variable paramiko.dsskey.WARNING=paramiko.dsskey-module.html#WARNING,Variable paramiko.hostkeys.WARNING=paramiko.hostkeys-module.html#WARNING,Variable paramiko.kex_gex.WARNING=paramiko.kex_gex-module.html#WARNING,Variable paramiko.kex_group1.WARNING=paramiko.kex_group1-module.html#WARNING,Variable paramiko.logging22.WARNING=paramiko.logging22-module.html#WARNING,Variable paramiko.packet.WARNING=paramiko.packet-module.html#WARNING,Variable paramiko.pkey.WARNING=paramiko.pkey-module.html#WARNING,Variable paramiko.rsakey.WARNING=paramiko.rsakey-module.html#WARNING,Variable paramiko.server.WARNING=paramiko.server-module.html#WARNING,Variable paramiko.sftp.WARNING=paramiko.sftp-module.html#WARNING,Variable paramiko.sftp_attr.WARNING=paramiko.sftp_attr-module.html#WARNING,Variable paramiko.sftp_client.WARNING=paramiko.sftp_client-module.html#WARNING,Variable paramiko.sftp_file.WARNING=paramiko.sftp_file-module.html#WARNING,Variable paramiko.sftp_handle.WARNING=paramiko.sftp_handle-module.html#WARNING,Variable paramiko.sftp_server.WARNING=paramiko.sftp_server-module.html#WARNING,Variable paramiko.sftp_si.WARNING=paramiko.sftp_si-module.html#WARNING,Variable paramiko.transport.WARNING=paramiko.transport-module.html#WARNING,Variable paramiko.util.WARNING=paramiko.util-module.html#WARNING"><a title="paramiko.auth_handler.WARNING
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-329', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-330', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ptype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-331', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-332', '_handler_table', 'link-321');">_handler_table</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-333', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-334', '_handler_table', 'link-321');">_handler_table</a></tt><tt class="py-op">[</tt><tt class="py-name">ptype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-335', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-336" class="py-name" targets="Variable paramiko.auth_handler.WARNING=paramiko.auth_handler-module.html#WARNING,Variable paramiko.channel.WARNING=paramiko.channel-module.html#WARNING,Variable paramiko.client.WARNING=paramiko.client-module.html#WARNING,Variable paramiko.common.WARNING=paramiko.common-module.html#WARNING,Variable paramiko.dsskey.WARNING=paramiko.dsskey-module.html#WARNING,Variable paramiko.hostkeys.WARNING=paramiko.hostkeys-module.html#WARNING,Variable paramiko.kex_gex.WARNING=paramiko.kex_gex-module.html#WARNING,Variable paramiko.kex_group1.WARNING=paramiko.kex_group1-module.html#WARNING,Variable paramiko.logging22.WARNING=paramiko.logging22-module.html#WARNING,Variable paramiko.packet.WARNING=paramiko.packet-module.html#WARNING,Variable paramiko.pkey.WARNING=paramiko.pkey-module.html#WARNING,Variable paramiko.rsakey.WARNING=paramiko.rsakey-module.html#WARNING,Variable paramiko.server.WARNING=paramiko.server-module.html#WARNING,Variable paramiko.sftp.WARNING=paramiko.sftp-module.html#WARNING,Variable paramiko.sftp_attr.WARNING=paramiko.sftp_attr-module.html#WARNING,Variable paramiko.sftp_client.WARNING=paramiko.sftp_client-module.html#WARNING,Variable paramiko.sftp_file.WARNING=paramiko.sftp_file-module.html#WARNING,Variable paramiko.sftp_handle.WARNING=paramiko.sftp_handle-module.html#WARNING,Variable paramiko.sftp_server.WARNING=paramiko.sftp_server-module.html#WARNING,Variable paramiko.sftp_si.WARNING=paramiko.sftp_si-module.html#WARNING,Variable paramiko.transport.WARNING=paramiko.transport-module.html#WARNING,Variable paramiko.util.WARNING=paramiko.util-module.html#WARNING"><a title="paramiko.auth_handler.WARNING
paramiko.channel.WARNING
paramiko.client.WARNING
paramiko.common.WARNING
@@ -2274,9 +2314,9 @@ paramiko.sftp_handle.WARNING
paramiko.sftp_server.WARNING
paramiko.sftp_si.WARNING
paramiko.transport.WARNING
-paramiko.util.WARNING" class="py-name" href="#" onclick="return doclink('link-311', 'WARNING', 'link-311');">WARNING</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Oops, unhandled type %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-312" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-312', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-313', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-314" class="py-name" targets="Variable paramiko.auth_handler.MSG_UNIMPLEMENTED=paramiko.auth_handler-module.html#MSG_UNIMPLEMENTED,Variable paramiko.channel.MSG_UNIMPLEMENTED=paramiko.channel-module.html#MSG_UNIMPLEMENTED,Variable paramiko.client.MSG_UNIMPLEMENTED=paramiko.client-module.html#MSG_UNIMPLEMENTED,Variable paramiko.common.MSG_UNIMPLEMENTED=paramiko.common-module.html#MSG_UNIMPLEMENTED,Variable paramiko.dsskey.MSG_UNIMPLEMENTED=paramiko.dsskey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.hostkeys.MSG_UNIMPLEMENTED=paramiko.hostkeys-module.html#MSG_UNIMPLEMENTED,Variable paramiko.kex_gex.MSG_UNIMPLEMENTED=paramiko.kex_gex-module.html#MSG_UNIMPLEMENTED,Variable paramiko.kex_group1.MSG_UNIMPLEMENTED=paramiko.kex_group1-module.html#MSG_UNIMPLEMENTED,Variable paramiko.packet.MSG_UNIMPLEMENTED=paramiko.packet-module.html#MSG_UNIMPLEMENTED,Variable paramiko.pkey.MSG_UNIMPLEMENTED=paramiko.pkey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.rsakey.MSG_UNIMPLEMENTED=paramiko.rsakey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.server.MSG_UNIMPLEMENTED=paramiko.server-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp.MSG_UNIMPLEMENTED=paramiko.sftp-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_attr.MSG_UNIMPLEMENTED=paramiko.sftp_attr-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_client.MSG_UNIMPLEMENTED=paramiko.sftp_client-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_file.MSG_UNIMPLEMENTED=paramiko.sftp_file-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_handle.MSG_UNIMPLEMENTED=paramiko.sftp_handle-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_server.MSG_UNIMPLEMENTED=paramiko.sftp_server-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_si.MSG_UNIMPLEMENTED=paramiko.sftp_si-module.html#MSG_UNIMPLEMENTED,Variable paramiko.transport.MSG_UNIMPLEMENTED=paramiko.transport-module.html#MSG_UNIMPLEMENTED,Variable paramiko.util.MSG_UNIMPLEMENTED=paramiko.util-module.html#MSG_UNIMPLEMENTED"><a title="paramiko.auth_handler.MSG_UNIMPLEMENTED
+paramiko.util.WARNING" class="py-name" href="#" onclick="return doclink('link-336', 'WARNING', 'link-336');">WARNING</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Oops, unhandled type %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-337" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-337', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-338', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-339" class="py-name" targets="Variable paramiko.auth_handler.MSG_UNIMPLEMENTED=paramiko.auth_handler-module.html#MSG_UNIMPLEMENTED,Variable paramiko.channel.MSG_UNIMPLEMENTED=paramiko.channel-module.html#MSG_UNIMPLEMENTED,Variable paramiko.client.MSG_UNIMPLEMENTED=paramiko.client-module.html#MSG_UNIMPLEMENTED,Variable paramiko.common.MSG_UNIMPLEMENTED=paramiko.common-module.html#MSG_UNIMPLEMENTED,Variable paramiko.dsskey.MSG_UNIMPLEMENTED=paramiko.dsskey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.hostkeys.MSG_UNIMPLEMENTED=paramiko.hostkeys-module.html#MSG_UNIMPLEMENTED,Variable paramiko.kex_gex.MSG_UNIMPLEMENTED=paramiko.kex_gex-module.html#MSG_UNIMPLEMENTED,Variable paramiko.kex_group1.MSG_UNIMPLEMENTED=paramiko.kex_group1-module.html#MSG_UNIMPLEMENTED,Variable paramiko.packet.MSG_UNIMPLEMENTED=paramiko.packet-module.html#MSG_UNIMPLEMENTED,Variable paramiko.pkey.MSG_UNIMPLEMENTED=paramiko.pkey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.rsakey.MSG_UNIMPLEMENTED=paramiko.rsakey-module.html#MSG_UNIMPLEMENTED,Variable paramiko.server.MSG_UNIMPLEMENTED=paramiko.server-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp.MSG_UNIMPLEMENTED=paramiko.sftp-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_attr.MSG_UNIMPLEMENTED=paramiko.sftp_attr-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_client.MSG_UNIMPLEMENTED=paramiko.sftp_client-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_file.MSG_UNIMPLEMENTED=paramiko.sftp_file-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_handle.MSG_UNIMPLEMENTED=paramiko.sftp_handle-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_server.MSG_UNIMPLEMENTED=paramiko.sftp_server-module.html#MSG_UNIMPLEMENTED,Variable paramiko.sftp_si.MSG_UNIMPLEMENTED=paramiko.sftp_si-module.html#MSG_UNIMPLEMENTED,Variable paramiko.transport.MSG_UNIMPLEMENTED=paramiko.transport-module.html#MSG_UNIMPLEMENTED,Variable paramiko.util.MSG_UNIMPLEMENTED=paramiko.util-module.html#MSG_UNIMPLEMENTED"><a title="paramiko.auth_handler.MSG_UNIMPLEMENTED
paramiko.channel.MSG_UNIMPLEMENTED
paramiko.client.MSG_UNIMPLEMENTED
paramiko.common.MSG_UNIMPLEMENTED
@@ -2296,11 +2336,11 @@ paramiko.sftp_handle.MSG_UNIMPLEMENTED
paramiko.sftp_server.MSG_UNIMPLEMENTED
paramiko.sftp_si.MSG_UNIMPLEMENTED
paramiko.transport.MSG_UNIMPLEMENTED
-paramiko.util.MSG_UNIMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-314', 'MSG_UNIMPLEMENTED', 'link-314');">MSG_UNIMPLEMENTED</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-315', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">seqno</tt><tt class="py-op">)</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-316" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-316', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-317" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.util.MSG_UNIMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-339', 'MSG_UNIMPLEMENTED', 'link-339');">MSG_UNIMPLEMENTED</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-340', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">seqno</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-341" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-341', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-342" class="py-name"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2321,8 +2361,8 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-317', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-318" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-342', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-343" class="py-name"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2343,10 +2383,10 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-318', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt id="link-319" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-319', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-320" class="py-name" targets="Function paramiko.util.tb_strings()=paramiko.util-module.html#tb_strings"><a title="paramiko.util.tb_strings" class="py-name" href="#" onclick="return doclink('link-320', 'tb_strings', 'link-320');">tb_strings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-321" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-343', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt id="link-344" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-344', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-345" class="py-name" targets="Function paramiko.util.tb_strings()=paramiko.util-module.html#tb_strings"><a title="paramiko.util.tb_strings" class="py-name" href="#" onclick="return doclink('link-345', 'tb_strings', 'link-345');">tb_strings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">EOFError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-346" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2367,16 +2407,16 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-321', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF in transport thread'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"> <tt class="py-comment">#self._log(DEBUG, util.tb_strings())</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
-paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-322', 'error', 'link-322');">error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"> <tt class="py-name">emsg</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s (%d)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"> <tt class="py-name">emsg</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-323" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-346', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF in transport thread'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"> <tt class="py-comment">#self._log(DEBUG, util.tb_strings())</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-347" class="py-name" targets="Class paramiko.rng_posix.error=paramiko.rng_posix.error-class.html,Class paramiko.rng_win32.error=paramiko.rng_win32.error-class.html"><a title="paramiko.rng_posix.error
+paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link-347', 'error', 'link-347');">error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"> <tt class="py-name">emsg</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s (%d)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"> <tt class="py-name">emsg</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-348" class="py-name"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2397,10 +2437,10 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-323', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Socket exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">emsg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-324" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-348', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Socket exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">emsg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-349" class="py-name"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2421,8 +2461,8 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-324', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unknown exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-325" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-349', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Unknown exception: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-350" class="py-name"><a title="paramiko.auth_handler.ERROR
paramiko.channel.ERROR
paramiko.client.ERROR
paramiko.common.ERROR
@@ -2443,15 +2483,15 @@ paramiko.sftp_handle.ERROR
paramiko.sftp_server.ERROR
paramiko.sftp_si.ERROR
paramiko.transport.ERROR
-paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-325', 'ERROR', 'link-303');">ERROR</a></tt><tt class="py-op">,</tt> <tt id="link-326" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-326', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="paramiko.util.tb_strings" class="py-name" href="#" onclick="return doclink('link-327', 'tb_strings', 'link-320');">tb_strings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"> <tt id="link-328" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-328', '_active_threads', 'link-45');">_active_threads</a></tt><tt class="py-op">.</tt><tt id="link-329" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-329', 'remove', 'link-329');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="paramiko.HostKeys.values
-paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-330', 'values', 'link-73');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_unlink</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="paramiko.Agent.close
+paramiko.util.ERROR" class="py-name" href="#" onclick="return doclink('link-350', 'ERROR', 'link-328');">ERROR</a></tt><tt class="py-op">,</tt> <tt id="link-351" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-351', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="paramiko.util.tb_strings" class="py-name" href="#" onclick="return doclink('link-352', 'tb_strings', 'link-345');">tb_strings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"> <tt id="link-353" class="py-name"><a title="paramiko.transport._active_threads" class="py-name" href="#" onclick="return doclink('link-353', '_active_threads', 'link-49');">_active_threads</a></tt><tt class="py-op">.</tt><tt id="link-354" class="py-name" targets="Method paramiko.SFTPServerInterface.remove()=paramiko.SFTPServerInterface-class.html#remove"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-354', 'remove', 'link-354');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="paramiko.HostKeys.values
+paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-355', 'values', 'link-77');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_unlink</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt><tt class="py-op">:</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -2462,24 +2502,24 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-331', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name" targets="Method paramiko.pipe.OrPipe.set()=paramiko.pipe.OrPipe-class.html#set,Method paramiko.pipe.PosixPipe.set()=paramiko.pipe.PosixPipe-class.html#set,Method paramiko.pipe.WindowsPipe.set()=paramiko.pipe.WindowsPipe-class.html#set"><a title="paramiko.pipe.OrPipe.set
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-356', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-357" class="py-name" targets="Method paramiko.pipe.OrPipe.set()=paramiko.pipe.OrPipe-class.html#set,Method paramiko.pipe.PosixPipe.set()=paramiko.pipe.PosixPipe-class.html#set,Method paramiko.pipe.WindowsPipe.set()=paramiko.pipe.WindowsPipe-class.html#set"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-332', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-333', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-334', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">abort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="paramiko.HostKeys.values
-paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-335', 'values', 'link-73');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-357', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-358', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-359', 'auth_handler', 'link-3');">auth_handler</a></tt><tt class="py-op">.</tt><tt class="py-name">abort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="paramiko.HostKeys.values
+paramiko.transport.ChannelMap.values" class="py-name" href="#" onclick="return doclink('link-360', 'values', 'link-77');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">.</tt><tt id="link-361" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-336', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">notify</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="paramiko.Agent.close
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-361', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_accept_cv</tt><tt class="py-op">.</tt><tt class="py-name">notify</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="paramiko.Agent.close
paramiko.BufferedFile.close
paramiko.Channel.close
paramiko.SFTPClient.close
@@ -2490,45 +2530,45 @@ paramiko.Transport.close
paramiko.buffered_pipe.BufferedPipe.close
paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
-paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-337', 'close', 'link-110');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"> <tt class="py-comment">### protocol stages</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"> </tt>
-<a name="Transport._negotiate_keys"></a><div id="Transport._negotiate_keys-def"><a name="L1575"></a><tt class="py-lineno">1575</tt> <a class="py-toggle" href="#" id="Transport._negotiate_keys-toggle" onclick="return toggle('Transport._negotiate_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_negotiate_keys">_negotiate_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._negotiate_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._negotiate_keys-expanded"><a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"> <tt class="py-comment"># throws SSHException on anything unusual</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name" targets="Method paramiko.HostKeys.clear()=paramiko.HostKeys-class.html#clear,Method paramiko.pipe.OrPipe.clear()=paramiko.pipe.OrPipe-class.html#clear,Method paramiko.pipe.PosixPipe.clear()=paramiko.pipe.PosixPipe-class.html#clear,Method paramiko.pipe.WindowsPipe.clear()=paramiko.pipe.WindowsPipe-class.html#clear"><a title="paramiko.HostKeys.clear
+paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-362', 'close', 'link-115');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"> <tt class="py-comment">### protocol stages</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"> </tt>
+<a name="Transport._negotiate_keys"></a><div id="Transport._negotiate_keys-def"><a name="L1608"></a><tt class="py-lineno">1608</tt> <a class="py-toggle" href="#" id="Transport._negotiate_keys-toggle" onclick="return toggle('Transport._negotiate_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_negotiate_keys">_negotiate_keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._negotiate_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._negotiate_keys-expanded"><a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"> <tt class="py-comment"># throws SSHException on anything unusual</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name" targets="Method paramiko.HostKeys.clear()=paramiko.HostKeys-class.html#clear,Method paramiko.pipe.OrPipe.clear()=paramiko.pipe.OrPipe-class.html#clear,Method paramiko.pipe.PosixPipe.clear()=paramiko.pipe.PosixPipe-class.html#clear,Method paramiko.pipe.WindowsPipe.clear()=paramiko.pipe.WindowsPipe-class.html#clear"><a title="paramiko.HostKeys.clear
paramiko.pipe.OrPipe.clear
paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-338', 'clear', 'link-338');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"> <tt class="py-comment"># remote side wants to renegotiate</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kex_init</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt><tt class="py-op">.</tt><tt id="link-339" class="py-name" targets="Method paramiko.kex_gex.KexGex.start_kex()=paramiko.kex_gex.KexGex-class.html#start_kex,Method paramiko.kex_group1.KexGroup1.start_kex()=paramiko.kex_group1.KexGroup1-class.html#start_kex"><a title="paramiko.kex_gex.KexGex.start_kex
-paramiko.kex_group1.KexGroup1.start_kex" class="py-name" href="#" onclick="return doclink('link-339', 'start_kex', 'link-339');">start_kex</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> </tt>
-<a name="Transport._check_banner"></a><div id="Transport._check_banner-def"><a name="L1588"></a><tt class="py-lineno">1588</tt> <a class="py-toggle" href="#" id="Transport._check_banner-toggle" onclick="return toggle('Transport._check_banner');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_check_banner">_check_banner</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._check_banner-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._check_banner-expanded"><a name="L1589"></a><tt class="py-lineno">1589</tt> <tt class="py-line"> <tt class="py-comment"># this is slow, but we only have to do it once</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"> <tt class="py-comment"># give them 15 seconds for the first line, then just 2 seconds</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># each additional line. (some sites have very high latency.)</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">banner_timeout</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name" targets="Method paramiko.BufferedFile.readline()=paramiko.BufferedFile-class.html#readline"><a title="paramiko.BufferedFile.readline" class="py-name" href="#" onclick="return doclink('link-340', 'readline', 'link-340');">readline</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-341" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-341', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error reading SSH protocol banner'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'SSH-'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-342" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-363', 'clear', 'link-363');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> <tt class="py-comment"># remote side wants to renegotiate</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_kex_init</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kex_init</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt><tt class="py-op">.</tt><tt id="link-364" class="py-name" targets="Method paramiko.kex_gex.KexGex.start_kex()=paramiko.kex_gex.KexGex-class.html#start_kex,Method paramiko.kex_group1.KexGroup1.start_kex()=paramiko.kex_group1.KexGroup1-class.html#start_kex"><a title="paramiko.kex_gex.KexGex.start_kex
+paramiko.kex_group1.KexGroup1.start_kex" class="py-name" href="#" onclick="return doclink('link-364', 'start_kex', 'link-364');">start_kex</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"> </tt>
+<a name="Transport._check_banner"></a><div id="Transport._check_banner-def"><a name="L1621"></a><tt class="py-lineno">1621</tt> <a class="py-toggle" href="#" id="Transport._check_banner-toggle" onclick="return toggle('Transport._check_banner');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_check_banner">_check_banner</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._check_banner-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._check_banner-expanded"><a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt class="py-comment"># this is slow, but we only have to do it once</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">100</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> <tt class="py-comment"># give them 15 seconds for the first line, then just 2 seconds</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt> <tt class="py-line"> <tt class="py-comment"># each additional line. (some sites have very high latency.)</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">banner_timeout</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt id="link-365" class="py-name" targets="Method paramiko.BufferedFile.readline()=paramiko.BufferedFile-class.html#readline"><a title="paramiko.BufferedFile.readline" class="py-name" href="#" onclick="return doclink('link-365', 'readline', 'link-365');">readline</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-366" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-366', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error reading SSH protocol banner'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'SSH-'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-367" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2549,26 +2589,26 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-342', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Banner: '</tt> <tt class="py-op">+</tt> <tt class="py-name">buf</tt><tt class="py-op">)</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'SSH-'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-343" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-343', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Indecipherable protocol version "'</tt> <tt class="py-op">+</tt> <tt class="py-name">buf</tt> <tt class="py-op">+</tt> <tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> <tt class="py-comment"># save this server version string for later</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"> <tt class="py-comment"># pull off any attached comment</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">,</tt> <tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-comment"># parse out version string and make sure it matches</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">segs</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">segs</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-344" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-344', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Invalid SSH banner'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">segs</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"> <tt id="link-345" class="py-name" targets="Module paramiko.client=paramiko.client-module.html"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-345', 'client', 'link-345');">client</a></tt> <tt class="py-op">=</tt> <tt class="py-name">segs</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">version</tt> <tt class="py-op">!=</tt> <tt class="py-string">'1.99'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">version</tt> <tt class="py-op">!=</tt> <tt class="py-string">'2.0'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-346" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-346', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible version (%s instead of 2.0)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-347" class="py-name" targets="Variable paramiko.auth_handler.INFO=paramiko.auth_handler-module.html#INFO,Variable paramiko.channel.INFO=paramiko.channel-module.html#INFO,Variable paramiko.client.INFO=paramiko.client-module.html#INFO,Variable paramiko.common.INFO=paramiko.common-module.html#INFO,Variable paramiko.dsskey.INFO=paramiko.dsskey-module.html#INFO,Variable paramiko.hostkeys.INFO=paramiko.hostkeys-module.html#INFO,Variable paramiko.kex_gex.INFO=paramiko.kex_gex-module.html#INFO,Variable paramiko.kex_group1.INFO=paramiko.kex_group1-module.html#INFO,Variable paramiko.logging22.INFO=paramiko.logging22-module.html#INFO,Variable paramiko.packet.INFO=paramiko.packet-module.html#INFO,Variable paramiko.pkey.INFO=paramiko.pkey-module.html#INFO,Variable paramiko.rsakey.INFO=paramiko.rsakey-module.html#INFO,Variable paramiko.server.INFO=paramiko.server-module.html#INFO,Variable paramiko.sftp.INFO=paramiko.sftp-module.html#INFO,Variable paramiko.sftp_attr.INFO=paramiko.sftp_attr-module.html#INFO,Variable paramiko.sftp_client.INFO=paramiko.sftp_client-module.html#INFO,Variable paramiko.sftp_file.INFO=paramiko.sftp_file-module.html#INFO,Variable paramiko.sftp_handle.INFO=paramiko.sftp_handle-module.html#INFO,Variable paramiko.sftp_server.INFO=paramiko.sftp_server-module.html#INFO,Variable paramiko.sftp_si.INFO=paramiko.sftp_si-module.html#INFO,Variable paramiko.transport.INFO=paramiko.transport-module.html#INFO,Variable paramiko.util.INFO=paramiko.util-module.html#INFO"><a title="paramiko.auth_handler.INFO
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-367', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Banner: '</tt> <tt class="py-op">+</tt> <tt class="py-name">buf</tt><tt class="py-op">)</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'SSH-'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-368" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-368', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Indecipherable protocol version "'</tt> <tt class="py-op">+</tt> <tt class="py-name">buf</tt> <tt class="py-op">+</tt> <tt class="py-string">'"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"> <tt class="py-comment"># save this server version string for later</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_version</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"> <tt class="py-comment"># pull off any attached comment</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"> <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">buf</tt><tt class="py-op">,</tt> <tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"> <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"> <tt class="py-name">buf</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt class="py-comment"># parse out version string and make sure it matches</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"> <tt class="py-name">segs</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">segs</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-369" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-369', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Invalid SSH banner'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">segs</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"> <tt id="link-370" class="py-name" targets="Module paramiko.client=paramiko.client-module.html"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-370', 'client', 'link-370');">client</a></tt> <tt class="py-op">=</tt> <tt class="py-name">segs</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">version</tt> <tt class="py-op">!=</tt> <tt class="py-string">'1.99'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">version</tt> <tt class="py-op">!=</tt> <tt class="py-string">'2.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-371" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-371', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible version (%s instead of 2.0)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-372" class="py-name" targets="Variable paramiko.auth_handler.INFO=paramiko.auth_handler-module.html#INFO,Variable paramiko.channel.INFO=paramiko.channel-module.html#INFO,Variable paramiko.client.INFO=paramiko.client-module.html#INFO,Variable paramiko.common.INFO=paramiko.common-module.html#INFO,Variable paramiko.dsskey.INFO=paramiko.dsskey-module.html#INFO,Variable paramiko.hostkeys.INFO=paramiko.hostkeys-module.html#INFO,Variable paramiko.kex_gex.INFO=paramiko.kex_gex-module.html#INFO,Variable paramiko.kex_group1.INFO=paramiko.kex_group1-module.html#INFO,Variable paramiko.logging22.INFO=paramiko.logging22-module.html#INFO,Variable paramiko.packet.INFO=paramiko.packet-module.html#INFO,Variable paramiko.pkey.INFO=paramiko.pkey-module.html#INFO,Variable paramiko.rsakey.INFO=paramiko.rsakey-module.html#INFO,Variable paramiko.server.INFO=paramiko.server-module.html#INFO,Variable paramiko.sftp.INFO=paramiko.sftp-module.html#INFO,Variable paramiko.sftp_attr.INFO=paramiko.sftp_attr-module.html#INFO,Variable paramiko.sftp_client.INFO=paramiko.sftp_client-module.html#INFO,Variable paramiko.sftp_file.INFO=paramiko.sftp_file-module.html#INFO,Variable paramiko.sftp_handle.INFO=paramiko.sftp_handle-module.html#INFO,Variable paramiko.sftp_server.INFO=paramiko.sftp_server-module.html#INFO,Variable paramiko.sftp_si.INFO=paramiko.sftp_si-module.html#INFO,Variable paramiko.transport.INFO=paramiko.transport-module.html#INFO,Variable paramiko.util.INFO=paramiko.util-module.html#INFO"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -2589,34 +2629,34 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-347', 'INFO', 'link-347');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Connected (version %s, client %s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">,</tt> <tt id="link-348" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-348', 'client', 'link-345');">client</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"> </tt>
-<a name="Transport._send_kex_init"></a><div id="Transport._send_kex_init-def"><a name="L1624"></a><tt class="py-lineno">1624</tt> <a class="py-toggle" href="#" id="Transport._send_kex_init-toggle" onclick="return toggle('Transport._send_kex_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_kex_init">_send_kex_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._send_kex_init-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_kex_init-expanded"><a name="L1625"></a><tt class="py-lineno">1625</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"><tt class="py-docstring"> announce to the other side that we'd like to negotiate keys, and what</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"><tt class="py-docstring"> kind of key negotiation we support.</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="paramiko.HostKeys.clear
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-372', 'INFO', 'link-372');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Connected (version %s, client %s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">,</tt> <tt id="link-373" class="py-name"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-373', 'client', 'link-370');">client</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> </tt>
+<a name="Transport._send_kex_init"></a><div id="Transport._send_kex_init-def"><a name="L1657"></a><tt class="py-lineno">1657</tt> <a class="py-toggle" href="#" id="Transport._send_kex_init-toggle" onclick="return toggle('Transport._send_kex_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_send_kex_init">_send_kex_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._send_kex_init-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._send_kex_init-expanded"><a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"><tt class="py-docstring"> announce to the other side that we'd like to negotiate keys, and what</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"><tt class="py-docstring"> kind of key negotiation we support.</tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="paramiko.HostKeys.clear
paramiko.pipe.OrPipe.clear
paramiko.pipe.PosixPipe.clear
-paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-349', 'clear', 'link-338');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-350', '_modulus_pack', 'link-94');">_modulus_pack</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-351', '_preferred_kex', 'link-52');">_preferred_kex</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"> <tt class="py-comment"># can't do group-exchange if we don't have a pack of potential primes</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pkex</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name" targets="Method paramiko.Transport.get_security_options()=paramiko.Transport-class.html#get_security_options"><a title="paramiko.Transport.get_security_options" class="py-name" href="#" onclick="return doclink('link-352', 'get_security_options', 'link-352');">get_security_options</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-353', 'kex', 'link-66');">kex</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"> <tt class="py-name">pkex</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-354', 'remove', 'link-329');">remove</a></tt><tt class="py-op">(</tt><tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="paramiko.Transport.get_security_options" class="py-name" href="#" onclick="return doclink('link-355', 'get_security_options', 'link-352');">get_security_options</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-356', 'kex', 'link-66');">kex</a></tt> <tt class="py-op">=</tt> <tt class="py-name">pkex</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt id="link-357" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-357', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-358', 'keys', 'link-54');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-359', '_preferred_keys', 'link-51');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-360', '_preferred_keys', 'link-51');">_preferred_keys</a></tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"> <tt id="link-361" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.pipe.WindowsPipe.clear" class="py-name" href="#" onclick="return doclink('link-374', 'clear', 'link-363');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="paramiko.Transport._modulus_pack" class="py-name" href="#" onclick="return doclink('link-375', '_modulus_pack', 'link-98');">_modulus_pack</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-376', '_preferred_kex', 'link-56');">_preferred_kex</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt> <tt class="py-line"> <tt class="py-comment"># can't do group-exchange if we don't have a pack of potential primes</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt> <tt class="py-line"> <tt class="py-name">pkex</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-377" class="py-name" targets="Method paramiko.Transport.get_security_options()=paramiko.Transport-class.html#get_security_options"><a title="paramiko.Transport.get_security_options" class="py-name" href="#" onclick="return doclink('link-377', 'get_security_options', 'link-377');">get_security_options</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-378', 'kex', 'link-70');">kex</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt> <tt class="py-line"> <tt class="py-name">pkex</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="paramiko.SFTPServerInterface.remove" class="py-name" href="#" onclick="return doclink('link-379', 'remove', 'link-354');">remove</a></tt><tt class="py-op">(</tt><tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="paramiko.Transport.get_security_options" class="py-name" href="#" onclick="return doclink('link-380', 'get_security_options', 'link-377');">get_security_options</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="paramiko.SecurityOptions.kex" class="py-name" href="#" onclick="return doclink('link-381', 'kex', 'link-70');">kex</a></tt> <tt class="py-op">=</tt> <tt class="py-name">pkex</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt id="link-382" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-382', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-383', 'keys', 'link-58');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-384', '_preferred_keys', 'link-55');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-385', '_preferred_keys', 'link-55');">_preferred_keys</a></tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt> <tt class="py-line"> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt> <tt class="py-line"> <tt id="link-386" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -2636,9 +2676,9 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-361', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-362', 'stir', 'link-171');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-363" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-363', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-364" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-364', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-365" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-386', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-387', 'stir', 'link-176');">stir</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-388', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-389', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-390" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
paramiko.channel.MSG_KEXINIT
paramiko.client.MSG_KEXINIT
paramiko.common.MSG_KEXINIT
@@ -2658,8 +2698,8 @@ paramiko.sftp_handle.MSG_KEXINIT
paramiko.sftp_server.MSG_KEXINIT
paramiko.sftp_si.MSG_KEXINIT
paramiko.transport.MSG_KEXINIT
-paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-365', 'MSG_KEXINIT', 'link-288');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-366', 'add_bytes', 'link-174');">add_bytes</a></tt><tt class="py-op">(</tt><tt id="link-367" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-390', 'MSG_KEXINIT', 'link-313');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="paramiko.Message.add_bytes" class="py-name" href="#" onclick="return doclink('link-391', 'add_bytes', 'link-179');">add_bytes</a></tt><tt class="py-op">(</tt><tt id="link-392" class="py-name"><a title="paramiko.auth_handler.randpool
paramiko.channel.randpool
paramiko.client.randpool
paramiko.common.randpool
@@ -2679,41 +2719,41 @@ paramiko.sftp_handle.randpool
paramiko.sftp_server.randpool
paramiko.sftp_si.randpool
paramiko.transport.randpool
-paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-367', 'randpool', 'link-97');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-368', 'get_bytes', 'link-173');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name" targets="Method paramiko.Message.add_list()=paramiko.Message-class.html#add_list"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-369', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-370', '_preferred_kex', 'link-52');">_preferred_kex</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-371', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">available_server_keys</tt><tt class="py-op">)</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-372" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-372', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-373', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-374', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-375', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-376', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-377" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-377', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-378', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-379', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-380', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-381', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-382', 'add_list', 'link-369');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-383', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-384', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-385', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-386" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-386', 'add_boolean', 'link-185');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-387', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"> <tt class="py-comment"># save a copy for later (needed to compute a hash)</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1665"></a><tt class="py-lineno">1665</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_kex_init"></a><div id="Transport._parse_kex_init-def"><a name="L1666"></a><tt class="py-lineno">1666</tt> <a class="py-toggle" href="#" id="Transport._parse_kex_init-toggle" onclick="return toggle('Transport._parse_kex_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_kex_init">_parse_kex_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_kex_init-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_kex_init-expanded"><a name="L1667"></a><tt class="py-lineno">1667</tt> <tt class="py-line"> <tt class="py-name">cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-388" class="py-name"><a title="paramiko.Message.get_bytes
-paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-388', 'get_bytes', 'link-173');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt> <tt class="py-line"> <tt class="py-name">kex_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name" targets="Method paramiko.Message.get_list()=paramiko.Message-class.html#get_list"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-389', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt> <tt class="py-line"> <tt class="py-name">server_key_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-390', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt> <tt class="py-line"> <tt class="py-name">client_encrypt_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-391', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt> <tt class="py-line"> <tt class="py-name">server_encrypt_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-392" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-392', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt> <tt class="py-line"> <tt class="py-name">client_mac_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-393" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-393', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt> <tt class="py-line"> <tt class="py-name">server_mac_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-394', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt> <tt class="py-line"> <tt class="py-name">client_compress_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-395', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt> <tt class="py-line"> <tt class="py-name">server_compress_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-396', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt> <tt class="py-line"> <tt class="py-name">client_lang_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-397', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt> <tt class="py-line"> <tt class="py-name">server_lang_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-398', 'get_list', 'link-389');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt> <tt class="py-line"> <tt class="py-name">kex_follows</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name" targets="Method paramiko.Message.get_boolean()=paramiko.Message-class.html#get_boolean"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-399', 'get_boolean', 'link-399');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt> <tt class="py-line"> <tt class="py-name">unused</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-400', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt> <tt class="py-line"> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.randpool" class="py-name" href="#" onclick="return doclink('link-392', 'randpool', 'link-102');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-393" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-393', 'get_bytes', 'link-178');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name" targets="Method paramiko.Message.add_list()=paramiko.Message-class.html#add_list"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-394', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-395', '_preferred_kex', 'link-56');">_preferred_kex</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-396', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">available_server_keys</tt><tt class="py-op">)</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-397', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-398', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-399', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-400', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-401" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-401', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-402', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-403', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-404', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-405" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-405', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-406', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-407" class="py-name"><a title="paramiko.Message.add_list" class="py-name" href="#" onclick="return doclink('link-407', 'add_list', 'link-394');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-408" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-408', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-409', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-410', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-411', 'add_boolean', 'link-190');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-412" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-412', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt> <tt class="py-line"> <tt class="py-comment"># save a copy for later (needed to compute a hash)</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1698"></a><tt class="py-lineno">1698</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_kex_init"></a><div id="Transport._parse_kex_init-def"><a name="L1699"></a><tt class="py-lineno">1699</tt> <a class="py-toggle" href="#" id="Transport._parse_kex_init-toggle" onclick="return toggle('Transport._parse_kex_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_kex_init">_parse_kex_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_kex_init-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_kex_init-expanded"><a name="L1700"></a><tt class="py-lineno">1700</tt> <tt class="py-line"> <tt class="py-name">cookie</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-413', 'get_bytes', 'link-178');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt> <tt class="py-line"> <tt class="py-name">kex_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-414" class="py-name" targets="Method paramiko.Message.get_list()=paramiko.Message-class.html#get_list"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-414', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt> <tt class="py-line"> <tt class="py-name">server_key_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-415', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt> <tt class="py-line"> <tt class="py-name">client_encrypt_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-416" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-416', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt> <tt class="py-line"> <tt class="py-name">server_encrypt_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-417', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt> <tt class="py-line"> <tt class="py-name">client_mac_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-418', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt> <tt class="py-line"> <tt class="py-name">server_mac_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-419" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-419', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt> <tt class="py-line"> <tt class="py-name">client_compress_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-420', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt> <tt class="py-line"> <tt class="py-name">server_compress_algo_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-421" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-421', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt> <tt class="py-line"> <tt class="py-name">client_lang_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-422', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt> <tt class="py-line"> <tt class="py-name">server_lang_list</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="paramiko.Message.get_list" class="py-name" href="#" onclick="return doclink('link-423', 'get_list', 'link-414');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt> <tt class="py-line"> <tt class="py-name">kex_follows</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name" targets="Method paramiko.Message.get_boolean()=paramiko.Message-class.html#get_boolean"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-424', 'get_boolean', 'link-424');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt> <tt class="py-line"> <tt class="py-name">unused</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-425', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt> <tt class="py-line"> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-426" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2734,54 +2774,54 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-401', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'kex algos:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">kex_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' server key:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_key_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt> <tt class="py-line"> <tt class="py-string">' client encrypt:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt> <tt class="py-line"> <tt class="py-string">' server encrypt:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt> <tt class="py-line"> <tt class="py-string">' client mac:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_mac_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt> <tt class="py-line"> <tt class="py-string">' server mac:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_mac_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt> <tt class="py-line"> <tt class="py-string">' client compress:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_compress_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt> <tt class="py-line"> <tt class="py-string">' server compress:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_compress_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt> <tt class="py-line"> <tt class="py-string">' client lang:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_lang_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt> <tt class="py-line"> <tt class="py-string">' server lang:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_lang_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt> <tt class="py-line"> <tt class="py-string">' kex follows?'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">kex_follows</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt> <tt class="py-line"> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt> <tt class="py-line"> <tt class="py-comment"># as a server, we pick the first item in the client's list that we support.</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># as a client, we pick the first item in our list that the server supports.</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt> <tt class="py-line"> <tt class="py-name">agreed_kex</tt> <tt class="py-op">=</tt> <tt id="link-402" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-402', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-403', '_preferred_kex', 'link-52');">_preferred_kex</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">kex_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt> <tt class="py-line"> <tt class="py-name">agreed_kex</tt> <tt class="py-op">=</tt> <tt id="link-404" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-404', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">kex_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-405" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-405', '_preferred_kex', 'link-52');">_preferred_kex</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-406" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-406', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (no acceptable kex algorithm)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-407" class="py-name"><a title="paramiko.Transport._kex_info" class="py-name" href="#" onclick="return doclink('link-407', '_kex_info', 'link-86');">_kex_info</a></tt><tt class="py-op">[</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt> <tt class="py-line"> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt id="link-408" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-408', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-409', 'keys', 'link-54');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-410', '_preferred_keys', 'link-51');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt> <tt class="py-line"> <tt class="py-name">agreed_keys</tt> <tt class="py-op">=</tt> <tt id="link-411" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-411', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">available_server_keys</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_key_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt> <tt class="py-line"> <tt class="py-name">agreed_keys</tt> <tt class="py-op">=</tt> <tt id="link-412" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-412', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_key_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-413', '_preferred_keys', 'link-51');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_keys</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-414" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-414', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (no acceptable host key)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_keys</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-415" class="py-name" targets="Method paramiko.Transport.get_server_key()=paramiko.Transport-class.html#get_server_key"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-415', 'get_server_key', 'link-415');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-416" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-416', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (can\'t match requested host key type)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt> <tt class="py-line"> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt> <tt class="py-line"> <tt class="py-name">agreed_local_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-417" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-417', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-418', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt> <tt class="py-line"> <tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-419" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-419', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-420', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt> <tt class="py-line"> <tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt> <tt class="py-line"> <tt class="py-name">agreed_local_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-421" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-421', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-422', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-423" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-423', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-424', '_preferred_ciphers', 'link-49');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_ciphers</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_ciphers</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-425" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-425', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable ciphers)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_ciphers</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_ciphers</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-426" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-426', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'kex algos:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">kex_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' server key:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_key_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt> <tt class="py-line"> <tt class="py-string">' client encrypt:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt> <tt class="py-line"> <tt class="py-string">' server encrypt:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt> <tt class="py-line"> <tt class="py-string">' client mac:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_mac_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt> <tt class="py-line"> <tt class="py-string">' server mac:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_mac_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt> <tt class="py-line"> <tt class="py-string">' client compress:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_compress_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt> <tt class="py-line"> <tt class="py-string">' server compress:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_compress_algo_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt> <tt class="py-line"> <tt class="py-string">' client lang:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">client_lang_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt> <tt class="py-line"> <tt class="py-string">' server lang:'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">server_lang_list</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt> <tt class="py-line"> <tt class="py-string">' kex follows?'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">kex_follows</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt> <tt class="py-line"> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt> <tt class="py-line"> <tt class="py-comment"># as a server, we pick the first item in the client's list that we support.</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt> <tt class="py-line"> <tt class="py-comment"># as a client, we pick the first item in our list that the server supports.</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt> <tt class="py-line"> <tt class="py-name">agreed_kex</tt> <tt class="py-op">=</tt> <tt id="link-427" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-427', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-428', '_preferred_kex', 'link-56');">_preferred_kex</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">kex_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt> <tt class="py-line"> <tt class="py-name">agreed_kex</tt> <tt class="py-op">=</tt> <tt id="link-429" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-429', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">kex_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="paramiko.Transport._preferred_kex" class="py-name" href="#" onclick="return doclink('link-430', '_preferred_kex', 'link-56');">_preferred_kex</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-431" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-431', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (no acceptable kex algorithm)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="paramiko.Transport._kex_info" class="py-name" href="#" onclick="return doclink('link-432', '_kex_info', 'link-90');">_kex_info</a></tt><tt class="py-op">[</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt> <tt class="py-line"> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt> <tt class="py-line"> <tt class="py-name">available_server_keys</tt> <tt class="py-op">=</tt> <tt id="link-433" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-433', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_key_dict</tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-434', 'keys', 'link-58');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-435', '_preferred_keys', 'link-55');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt> <tt class="py-line"> <tt class="py-name">agreed_keys</tt> <tt class="py-op">=</tt> <tt id="link-436" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-436', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">available_server_keys</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_key_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt> <tt class="py-line"> <tt class="py-name">agreed_keys</tt> <tt class="py-op">=</tt> <tt id="link-437" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-437', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_key_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="paramiko.Transport._preferred_keys" class="py-name" href="#" onclick="return doclink('link-438', '_preferred_keys', 'link-55');">_preferred_keys</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_keys</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-439" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-439', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (no acceptable host key)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_keys</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-440" class="py-name" targets="Method paramiko.Transport.get_server_key()=paramiko.Transport-class.html#get_server_key"><a title="paramiko.Transport.get_server_key" class="py-name" href="#" onclick="return doclink('link-440', 'get_server_key', 'link-440');">get_server_key</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-441" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-441', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh peer (can\'t match requested host key type)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt> <tt class="py-line"> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt> <tt class="py-line"> <tt class="py-name">agreed_local_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-442" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-442', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-443', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt> <tt class="py-line"> <tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-444" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-444', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-445', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt> <tt class="py-line"> <tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt> <tt class="py-line"> <tt class="py-name">agreed_local_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-446" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-446', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_encrypt_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-447', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_ciphers</tt> <tt class="py-op">=</tt> <tt id="link-448" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-448', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_encrypt_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="paramiko.Transport._preferred_ciphers" class="py-name" href="#" onclick="return doclink('link-449', '_preferred_ciphers', 'link-53');">_preferred_ciphers</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_ciphers</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_ciphers</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-450" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-450', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable ciphers)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_ciphers</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_ciphers</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-451" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2802,31 +2842,31 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-426', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Ciphers agreed: local=%s, remote=%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt> <tt class="py-line"> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_macs</tt> <tt class="py-op">=</tt> <tt id="link-427" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-427', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-428', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">client_mac_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt> <tt class="py-line"> <tt class="py-name">agreed_local_macs</tt> <tt class="py-op">=</tt> <tt id="link-429" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-429', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-430', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_mac_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt> <tt class="py-line"> <tt class="py-name">agreed_local_macs</tt> <tt class="py-op">=</tt> <tt id="link-431" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-431', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_mac_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-432', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_macs</tt> <tt class="py-op">=</tt> <tt id="link-433" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-433', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_mac_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-434', '_preferred_macs', 'link-50');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_macs</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_macs</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-435" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-435', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable macs)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_macs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_macs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt> <tt class="py-line"> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_compression</tt> <tt class="py-op">=</tt> <tt id="link-436" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-436', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-437" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-437', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">client_compress_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt> <tt class="py-line"> <tt class="py-name">agreed_local_compression</tt> <tt class="py-op">=</tt> <tt id="link-438" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-438', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-439', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_compress_algo_list</tt><tt class="py-op">)</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt> <tt class="py-line"> <tt class="py-name">agreed_local_compression</tt> <tt class="py-op">=</tt> <tt id="link-440" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-440', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_compress_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-441" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-441', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_compression</tt> <tt class="py-op">=</tt> <tt id="link-442" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-442', 'filter', 'link-55');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_compress_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-443', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_compression</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_compression</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-444" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-444', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable compression) %r %r %r'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">agreed_local_compression</tt><tt class="py-op">,</tt> <tt class="py-name">agreed_remote_compression</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-445', '_preferred_compression', 'link-53');">_preferred_compression</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_compression</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_compression</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt> <tt class="py-line"> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-446" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-451', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Ciphers agreed: local=%s, remote=%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt> <tt class="py-line"> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_macs</tt> <tt class="py-op">=</tt> <tt id="link-452" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-452', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-453', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">client_mac_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt> <tt class="py-line"> <tt class="py-name">agreed_local_macs</tt> <tt class="py-op">=</tt> <tt id="link-454" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-454', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-455', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_mac_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt> <tt class="py-line"> <tt class="py-name">agreed_local_macs</tt> <tt class="py-op">=</tt> <tt id="link-456" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-456', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_mac_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-457', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_macs</tt> <tt class="py-op">=</tt> <tt id="link-458" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-458', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_mac_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="paramiko.Transport._preferred_macs" class="py-name" href="#" onclick="return doclink('link-459', '_preferred_macs', 'link-54');">_preferred_macs</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_macs</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_macs</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-460" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-460', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable macs)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_macs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_macs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt> <tt class="py-line"> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_compression</tt> <tt class="py-op">=</tt> <tt id="link-461" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-461', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-462', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">client_compress_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt> <tt class="py-line"> <tt class="py-name">agreed_local_compression</tt> <tt class="py-op">=</tt> <tt id="link-463" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-463', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-464', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">server_compress_algo_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt> <tt class="py-line"> <tt class="py-name">agreed_local_compression</tt> <tt class="py-op">=</tt> <tt id="link-465" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-465', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">client_compress_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-466', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt> <tt class="py-line"> <tt class="py-name">agreed_remote_compression</tt> <tt class="py-op">=</tt> <tt id="link-467" class="py-name"><a title="paramiko.util.PFilter.filter" class="py-name" href="#" onclick="return doclink('link-467', 'filter', 'link-59');">filter</a></tt><tt class="py-op">(</tt><tt class="py-name">server_compress_algo_list</tt><tt class="py-op">.</tt><tt class="py-name">__contains__</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-468', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_local_compression</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">agreed_remote_compression</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-469" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-469', 'SSHException', 'link-42');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Incompatible ssh server (no acceptable compression) %r %r %r'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">agreed_local_compression</tt><tt class="py-op">,</tt> <tt class="py-name">agreed_remote_compression</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="paramiko.Transport._preferred_compression" class="py-name" href="#" onclick="return doclink('link-470', '_preferred_compression', 'link-57');">_preferred_compression</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_local_compression</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">=</tt> <tt class="py-name">agreed_remote_compression</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt> <tt class="py-line"> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-471" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2847,16 +2887,16 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-446', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'using kex %s; server key type %s; cipher: local %s, remote %s; mac: local %s, remote %s; compression: local %s, remote %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">,</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt> <tt class="py-line"> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt> <tt class="py-line"> <tt class="py-comment"># save for computing hash later...</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># now wait! openssh has a bug (and others might too) where there are</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># actually some extra bytes (one NUL byte in openssh's case) added to</tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># the end of the packet but not parsed. turns out we need to throw</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># away those bytes because they aren't part of the hash.</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-447" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-471', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'using kex %s; server key type %s; cipher: local %s, remote %s; mac: local %s, remote %s; compression: local %s, remote %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">agreed_kex</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">host_key_type</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">,</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt> <tt class="py-line"> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt> <tt class="py-line"> <tt class="py-comment"># save for computing hash later...</tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt> <tt class="py-line"> <tt class="py-comment"># now wait! openssh has a bug (and others might too) where there are</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt> <tt class="py-line"> <tt class="py-comment"># actually some extra bytes (one NUL byte in openssh's case) added to</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt> <tt class="py-line"> <tt class="py-comment"># the end of the packet but not parsed. turns out we need to throw</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt> <tt class="py-line"> <tt class="py-comment"># away those bytes because they aren't part of the hash.</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
paramiko.channel.MSG_KEXINIT
paramiko.client.MSG_KEXINIT
paramiko.common.MSG_KEXINIT
@@ -2876,30 +2916,30 @@ paramiko.sftp_handle.MSG_KEXINIT
paramiko.sftp_server.MSG_KEXINIT
paramiko.sftp_si.MSG_KEXINIT
paramiko.transport.MSG_KEXINIT
-paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-447', 'MSG_KEXINIT', 'link-288');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-448" class="py-name" targets="Method paramiko.Message.get_so_far()=paramiko.Message-class.html#get_so_far"><a title="paramiko.Message.get_so_far" class="py-name" href="#" onclick="return doclink('link-448', 'get_so_far', 'link-448');">get_so_far</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1762"></a><tt class="py-lineno">1762</tt> <tt class="py-line"> </tt>
-<a name="Transport._activate_inbound"></a><div id="Transport._activate_inbound-def"><a name="L1763"></a><tt class="py-lineno">1763</tt> <a class="py-toggle" href="#" id="Transport._activate_inbound-toggle" onclick="return toggle('Transport._activate_inbound');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_activate_inbound">_activate_inbound</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._activate_inbound-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._activate_inbound-expanded"><a name="L1764"></a><tt class="py-lineno">1764</tt> <tt class="py-line"> <tt class="py-docstring">"switch on newly negotiated encryption parameters for inbound traffic"</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt> <tt class="py-line"> <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-449', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'block-size'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt> <tt class="py-line"> <tt class="py-name">IV_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1768"></a><tt class="py-lineno">1768</tt> <tt class="py-line"> <tt class="py-name">key_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-450', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt> <tt class="py-line"> <tt class="py-name">IV_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'B'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1771"></a><tt class="py-lineno">1771</tt> <tt class="py-line"> <tt class="py-name">key_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-451', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt> <tt class="py-line"> <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_cipher</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">key_in</tt><tt class="py-op">,</tt> <tt class="py-name">IV_in</tt><tt class="py-op">)</tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt> <tt class="py-line"> <tt class="py-name">mac_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-452', '_mac_info', 'link-82');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'size'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt> <tt class="py-line"> <tt class="py-name">mac_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-453', '_mac_info', 'link-82');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt> <tt class="py-line"> <tt class="py-comment"># initial mac keys are done in the hash's natural size (not the potentially truncated</tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># transmission size)</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_cipher</tt><tt class="py-op">(</tt><tt class="py-name">engine</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-name">mac_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt> <tt class="py-line"> <tt class="py-name">compress_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-454" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-454', '_compression_info', 'link-89');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">compress_in</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">!=</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-455" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-472', 'MSG_KEXINIT', 'link-313');">MSG_KEXINIT</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name" targets="Method paramiko.Message.get_so_far()=paramiko.Message-class.html#get_so_far"><a title="paramiko.Message.get_so_far" class="py-name" href="#" onclick="return doclink('link-473', 'get_so_far', 'link-473');">get_so_far</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1795"></a><tt class="py-lineno">1795</tt> <tt class="py-line"> </tt>
+<a name="Transport._activate_inbound"></a><div id="Transport._activate_inbound-def"><a name="L1796"></a><tt class="py-lineno">1796</tt> <a class="py-toggle" href="#" id="Transport._activate_inbound-toggle" onclick="return toggle('Transport._activate_inbound');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_activate_inbound">_activate_inbound</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._activate_inbound-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._activate_inbound-expanded"><a name="L1797"></a><tt class="py-lineno">1797</tt> <tt class="py-line"> <tt class="py-docstring">"switch on newly negotiated encryption parameters for inbound traffic"</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt> <tt class="py-line"> <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-474', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'block-size'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt> <tt class="py-line"> <tt class="py-name">IV_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt> <tt class="py-line"> <tt class="py-name">key_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-475', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt> <tt class="py-line"> <tt class="py-name">IV_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'B'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt> <tt class="py-line"> <tt class="py-name">key_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-476', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt> <tt class="py-line"> <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_cipher</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">key_in</tt><tt class="py-op">,</tt> <tt class="py-name">IV_in</tt><tt class="py-op">)</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt> <tt class="py-line"> <tt class="py-name">mac_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-477', '_mac_info', 'link-86');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'size'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt> <tt class="py-line"> <tt class="py-name">mac_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-478', '_mac_info', 'link-86');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt> <tt class="py-line"> <tt class="py-comment"># initial mac keys are done in the hash's natural size (not the potentially truncated</tt> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt> <tt class="py-line"> <tt class="py-comment"># transmission size)</tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_cipher</tt><tt class="py-op">(</tt><tt class="py-name">engine</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-name">mac_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt> <tt class="py-line"> <tt class="py-name">compress_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-479', '_compression_info', 'link-93');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">compress_in</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">!=</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-480" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2920,13 +2960,13 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-455', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on inbound compression ...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_in</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1786"></a><tt class="py-lineno">1786</tt> <tt class="py-line"> </tt>
-<a name="Transport._activate_outbound"></a><div id="Transport._activate_outbound-def"><a name="L1787"></a><tt class="py-lineno">1787</tt> <a class="py-toggle" href="#" id="Transport._activate_outbound-toggle" onclick="return toggle('Transport._activate_outbound');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_activate_outbound">_activate_outbound</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._activate_outbound-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._activate_outbound-expanded"><a name="L1788"></a><tt class="py-lineno">1788</tt> <tt class="py-line"> <tt class="py-docstring">"switch on newly negotiated encryption parameters for outbound traffic"</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-456" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-456', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-457', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-458" class="py-name" targets="Variable paramiko.auth_handler.MSG_NEWKEYS=paramiko.auth_handler-module.html#MSG_NEWKEYS,Variable paramiko.channel.MSG_NEWKEYS=paramiko.channel-module.html#MSG_NEWKEYS,Variable paramiko.client.MSG_NEWKEYS=paramiko.client-module.html#MSG_NEWKEYS,Variable paramiko.common.MSG_NEWKEYS=paramiko.common-module.html#MSG_NEWKEYS,Variable paramiko.dsskey.MSG_NEWKEYS=paramiko.dsskey-module.html#MSG_NEWKEYS,Variable paramiko.hostkeys.MSG_NEWKEYS=paramiko.hostkeys-module.html#MSG_NEWKEYS,Variable paramiko.kex_gex.MSG_NEWKEYS=paramiko.kex_gex-module.html#MSG_NEWKEYS,Variable paramiko.kex_group1.MSG_NEWKEYS=paramiko.kex_group1-module.html#MSG_NEWKEYS,Variable paramiko.packet.MSG_NEWKEYS=paramiko.packet-module.html#MSG_NEWKEYS,Variable paramiko.pkey.MSG_NEWKEYS=paramiko.pkey-module.html#MSG_NEWKEYS,Variable paramiko.rsakey.MSG_NEWKEYS=paramiko.rsakey-module.html#MSG_NEWKEYS,Variable paramiko.server.MSG_NEWKEYS=paramiko.server-module.html#MSG_NEWKEYS,Variable paramiko.sftp.MSG_NEWKEYS=paramiko.sftp-module.html#MSG_NEWKEYS,Variable paramiko.sftp_attr.MSG_NEWKEYS=paramiko.sftp_attr-module.html#MSG_NEWKEYS,Variable paramiko.sftp_client.MSG_NEWKEYS=paramiko.sftp_client-module.html#MSG_NEWKEYS,Variable paramiko.sftp_file.MSG_NEWKEYS=paramiko.sftp_file-module.html#MSG_NEWKEYS,Variable paramiko.sftp_handle.MSG_NEWKEYS=paramiko.sftp_handle-module.html#MSG_NEWKEYS,Variable paramiko.sftp_server.MSG_NEWKEYS=paramiko.sftp_server-module.html#MSG_NEWKEYS,Variable paramiko.sftp_si.MSG_NEWKEYS=paramiko.sftp_si-module.html#MSG_NEWKEYS,Variable paramiko.transport.MSG_NEWKEYS=paramiko.transport-module.html#MSG_NEWKEYS,Variable paramiko.util.MSG_NEWKEYS=paramiko.util-module.html#MSG_NEWKEYS"><a title="paramiko.auth_handler.MSG_NEWKEYS
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-480', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on inbound compression ...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_in</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1819"></a><tt class="py-lineno">1819</tt> <tt class="py-line"> </tt>
+<a name="Transport._activate_outbound"></a><div id="Transport._activate_outbound-def"><a name="L1820"></a><tt class="py-lineno">1820</tt> <a class="py-toggle" href="#" id="Transport._activate_outbound-toggle" onclick="return toggle('Transport._activate_outbound');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_activate_outbound">_activate_outbound</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._activate_outbound-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._activate_outbound-expanded"><a name="L1821"></a><tt class="py-lineno">1821</tt> <tt class="py-line"> <tt class="py-docstring">"switch on newly negotiated encryption parameters for outbound traffic"</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-481" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-481', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-482" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-482', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-483" class="py-name" targets="Variable paramiko.auth_handler.MSG_NEWKEYS=paramiko.auth_handler-module.html#MSG_NEWKEYS,Variable paramiko.channel.MSG_NEWKEYS=paramiko.channel-module.html#MSG_NEWKEYS,Variable paramiko.client.MSG_NEWKEYS=paramiko.client-module.html#MSG_NEWKEYS,Variable paramiko.common.MSG_NEWKEYS=paramiko.common-module.html#MSG_NEWKEYS,Variable paramiko.dsskey.MSG_NEWKEYS=paramiko.dsskey-module.html#MSG_NEWKEYS,Variable paramiko.hostkeys.MSG_NEWKEYS=paramiko.hostkeys-module.html#MSG_NEWKEYS,Variable paramiko.kex_gex.MSG_NEWKEYS=paramiko.kex_gex-module.html#MSG_NEWKEYS,Variable paramiko.kex_group1.MSG_NEWKEYS=paramiko.kex_group1-module.html#MSG_NEWKEYS,Variable paramiko.packet.MSG_NEWKEYS=paramiko.packet-module.html#MSG_NEWKEYS,Variable paramiko.pkey.MSG_NEWKEYS=paramiko.pkey-module.html#MSG_NEWKEYS,Variable paramiko.rsakey.MSG_NEWKEYS=paramiko.rsakey-module.html#MSG_NEWKEYS,Variable paramiko.server.MSG_NEWKEYS=paramiko.server-module.html#MSG_NEWKEYS,Variable paramiko.sftp.MSG_NEWKEYS=paramiko.sftp-module.html#MSG_NEWKEYS,Variable paramiko.sftp_attr.MSG_NEWKEYS=paramiko.sftp_attr-module.html#MSG_NEWKEYS,Variable paramiko.sftp_client.MSG_NEWKEYS=paramiko.sftp_client-module.html#MSG_NEWKEYS,Variable paramiko.sftp_file.MSG_NEWKEYS=paramiko.sftp_file-module.html#MSG_NEWKEYS,Variable paramiko.sftp_handle.MSG_NEWKEYS=paramiko.sftp_handle-module.html#MSG_NEWKEYS,Variable paramiko.sftp_server.MSG_NEWKEYS=paramiko.sftp_server-module.html#MSG_NEWKEYS,Variable paramiko.sftp_si.MSG_NEWKEYS=paramiko.sftp_si-module.html#MSG_NEWKEYS,Variable paramiko.transport.MSG_NEWKEYS=paramiko.transport-module.html#MSG_NEWKEYS,Variable paramiko.util.MSG_NEWKEYS=paramiko.util-module.html#MSG_NEWKEYS"><a title="paramiko.auth_handler.MSG_NEWKEYS
paramiko.channel.MSG_NEWKEYS
paramiko.client.MSG_NEWKEYS
paramiko.common.MSG_NEWKEYS
@@ -2946,28 +2986,28 @@ paramiko.sftp_handle.MSG_NEWKEYS
paramiko.sftp_server.MSG_NEWKEYS
paramiko.sftp_si.MSG_NEWKEYS
paramiko.transport.MSG_NEWKEYS
-paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-458', 'MSG_NEWKEYS', 'link-458');">MSG_NEWKEYS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt> <tt class="py-line"> <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-459', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'block-size'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt> <tt class="py-line"> <tt class="py-name">IV_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'B'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt> <tt class="py-line"> <tt class="py-name">key_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-460', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt> <tt class="py-line"> <tt class="py-name">IV_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt> <tt class="py-line"> <tt class="py-name">key_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-461" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-461', '_cipher_info', 'link-81');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt> <tt class="py-line"> <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_cipher</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">key_out</tt><tt class="py-op">,</tt> <tt class="py-name">IV_out</tt><tt class="py-op">)</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt> <tt class="py-line"> <tt class="py-name">mac_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-462', '_mac_info', 'link-82');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'size'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt> <tt class="py-line"> <tt class="py-name">mac_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-463" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-463', '_mac_info', 'link-82');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt> <tt class="py-line"> <tt class="py-comment"># initial mac keys are done in the hash's natural size (not the potentially truncated</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># transmission size)</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_cipher</tt><tt class="py-op">(</tt><tt class="py-name">engine</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-name">mac_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt> <tt class="py-line"> <tt class="py-name">compress_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-464', '_compression_info', 'link-89');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">compress_out</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">!=</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-465" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-483', 'MSG_NEWKEYS', 'link-483');">MSG_NEWKEYS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt> <tt class="py-line"> <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-484', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'block-size'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt> <tt class="py-line"> <tt class="py-name">IV_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'B'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt> <tt class="py-line"> <tt class="py-name">key_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-485', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt> <tt class="py-line"> <tt class="py-name">IV_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt> <tt class="py-line"> <tt class="py-name">key_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="paramiko.Transport._cipher_info" class="py-name" href="#" onclick="return doclink('link-486', '_cipher_info', 'link-85');">_cipher_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'key-size'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt> <tt class="py-line"> <tt class="py-name">engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_cipher</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_cipher</tt><tt class="py-op">,</tt> <tt class="py-name">key_out</tt><tt class="py-op">,</tt> <tt class="py-name">IV_out</tt><tt class="py-op">)</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt> <tt class="py-line"> <tt class="py-name">mac_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-487', '_mac_info', 'link-86');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'size'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt> <tt class="py-line"> <tt class="py-name">mac_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="paramiko.Transport._mac_info" class="py-name" href="#" onclick="return doclink('link-488', '_mac_info', 'link-86');">_mac_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_mac</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'class'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt> <tt class="py-line"> <tt class="py-comment"># initial mac keys are done in the hash's natural size (not the potentially truncated</tt> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt> <tt class="py-line"> <tt class="py-comment"># transmission size)</tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt> <tt class="py-line"> <tt class="py-name">mac_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_compute_key</tt><tt class="py-op">(</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">.</tt><tt class="py-name">digest_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_cipher</tt><tt class="py-op">(</tt><tt class="py-name">engine</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-name">mac_size</tt><tt class="py-op">,</tt> <tt class="py-name">mac_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt> <tt class="py-line"> <tt class="py-name">compress_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-489" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-489', '_compression_info', 'link-93');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">compress_out</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">!=</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-490" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -2988,12 +3028,12 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-465', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on outbound compression ...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_out</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt> <tt class="py-line"> <tt class="py-comment"># we always expect to receive NEWKEYS now</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-466" class="py-name"><a title="paramiko.auth_handler.MSG_NEWKEYS
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-490', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on outbound compression ...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_out</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt> <tt class="py-line"> <tt class="py-comment"># we always expect to receive NEWKEYS now</tt> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expect_packet</tt><tt class="py-op">(</tt><tt id="link-491" class="py-name"><a title="paramiko.auth_handler.MSG_NEWKEYS
paramiko.channel.MSG_NEWKEYS
paramiko.client.MSG_NEWKEYS
paramiko.common.MSG_NEWKEYS
@@ -3013,14 +3053,14 @@ paramiko.sftp_handle.MSG_NEWKEYS
paramiko.sftp_server.MSG_NEWKEYS
paramiko.sftp_si.MSG_NEWKEYS
paramiko.transport.MSG_NEWKEYS
-paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-466', 'MSG_NEWKEYS', 'link-458');">MSG_NEWKEYS</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1817"></a><tt class="py-lineno">1817</tt> <tt class="py-line"> </tt>
-<a name="Transport._auth_trigger"></a><div id="Transport._auth_trigger-def"><a name="L1818"></a><tt class="py-lineno">1818</tt> <a class="py-toggle" href="#" id="Transport._auth_trigger-toggle" onclick="return toggle('Transport._auth_trigger');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_auth_trigger">_auth_trigger</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._auth_trigger-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._auth_trigger-expanded"><a name="L1819"></a><tt class="py-lineno">1819</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt> <tt class="py-line"> <tt class="py-comment"># delayed initiation of compression</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">==</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt> <tt class="py-line"> <tt class="py-name">compress_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-467" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-467', '_compression_info', 'link-89');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-468" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-491', 'MSG_NEWKEYS', 'link-483');">MSG_NEWKEYS</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1850"></a><tt class="py-lineno">1850</tt> <tt class="py-line"> </tt>
+<a name="Transport._auth_trigger"></a><div id="Transport._auth_trigger-def"><a name="L1851"></a><tt class="py-lineno">1851</tt> <a class="py-toggle" href="#" id="Transport._auth_trigger-toggle" onclick="return toggle('Transport._auth_trigger');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_auth_trigger">_auth_trigger</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._auth_trigger-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._auth_trigger-expanded"><a name="L1852"></a><tt class="py-lineno">1852</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt> <tt class="py-line"> <tt class="py-comment"># delayed initiation of compression</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt> <tt class="py-op">==</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt> <tt class="py-line"> <tt class="py-name">compress_out</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-492" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-492', '_compression_info', 'link-93');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3041,11 +3081,11 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-468', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on outbound compression ...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1824"></a><tt class="py-lineno">1824</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_out</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">==</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt> <tt class="py-line"> <tt class="py-name">compress_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-469" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-469', '_compression_info', 'link-89');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-470" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-493', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on outbound compression ...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_outbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_out</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt> <tt class="py-op">==</tt> <tt class="py-string">'zlib@openssh.com'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1859"></a><tt class="py-lineno">1859</tt> <tt class="py-line"> <tt class="py-name">compress_in</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="paramiko.Transport._compression_info" class="py-name" href="#" onclick="return doclink('link-494', '_compression_info', 'link-93');">_compression_info</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_compression</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1860"></a><tt class="py-lineno">1860</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-495" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3066,11 +3106,11 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-470', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on inbound compression ...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_in</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1829"></a><tt class="py-lineno">1829</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_newkeys"></a><div id="Transport._parse_newkeys-def"><a name="L1830"></a><tt class="py-lineno">1830</tt> <a class="py-toggle" href="#" id="Transport._parse_newkeys-toggle" onclick="return toggle('Transport._parse_newkeys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_newkeys">_parse_newkeys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_newkeys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_newkeys-expanded"><a name="L1831"></a><tt class="py-lineno">1831</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-471" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-495', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switching on inbound compression ...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">set_inbound_compressor</tt><tt class="py-op">(</tt><tt class="py-name">compress_in</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1862"></a><tt class="py-lineno">1862</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_newkeys"></a><div id="Transport._parse_newkeys-def"><a name="L1863"></a><tt class="py-lineno">1863</tt> <a class="py-toggle" href="#" id="Transport._parse_newkeys-toggle" onclick="return toggle('Transport._parse_newkeys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_newkeys">_parse_newkeys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_newkeys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_newkeys-expanded"><a name="L1864"></a><tt class="py-lineno">1864</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3091,39 +3131,39 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-471', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switch to new keys ...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_activate_inbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1833"></a><tt class="py-lineno">1833</tt> <tt class="py-line"> <tt class="py-comment"># can also free a bunch of stuff here</tt> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-472', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt> <tt class="py-line"> <tt class="py-comment"># create auth handler for server mode</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-473', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">:</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt> <tt class="py-line"> <tt class="py-comment"># this was the first key exchange</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt> <tt class="py-line"> <tt class="py-comment"># send an event?</tt> </tt>
-<a name="L1844"></a><tt class="py-lineno">1844</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-496', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Switch to new keys ...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_activate_inbound</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt> <tt class="py-line"> <tt class="py-comment"># can also free a bunch of stuff here</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">local_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">remote_kex_init</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">K</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kex_engine</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-497', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt> <tt class="py-line"> <tt class="py-comment"># create auth handler for server mode</tt> </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-498" class="py-name"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-498', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-op">=</tt> <tt class="py-name">AuthHandler</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt><tt class="py-op">:</tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt> <tt class="py-line"> <tt class="py-comment"># this was the first key exchange</tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">initial_kex_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt> <tt class="py-line"> <tt class="py-comment"># send an event?</tt> </tt>
+<a name="L1877"></a><tt class="py-lineno">1877</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1878"></a><tt class="py-lineno">1878</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-499" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-474', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt> <tt class="py-line"> <tt class="py-comment"># it's now okay to send data again (if this was a re-key)</tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-499', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt> <tt class="py-line"> <tt class="py-comment"># it's now okay to send data again (if this was a re-key)</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">packetizer</tt><tt class="py-op">.</tt><tt class="py-name">need_rekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_kex</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-475', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1853"></a><tt class="py-lineno">1853</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L1855"></a><tt class="py-lineno">1855</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_disconnect"></a><div id="Transport._parse_disconnect-def"><a name="L1856"></a><tt class="py-lineno">1856</tt> <a class="py-toggle" href="#" id="Transport._parse_disconnect-toggle" onclick="return toggle('Transport._parse_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_disconnect">_parse_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_disconnect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_disconnect-expanded"><a name="L1857"></a><tt class="py-lineno">1857</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-476', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt> <tt class="py-line"> <tt class="py-name">desc</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-477', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1859"></a><tt class="py-lineno">1859</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-478" class="py-name"><a title="paramiko.auth_handler.INFO
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-500', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clear_to_send_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L1888"></a><tt class="py-lineno">1888</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_disconnect"></a><div id="Transport._parse_disconnect-def"><a name="L1889"></a><tt class="py-lineno">1889</tt> <a class="py-toggle" href="#" id="Transport._parse_disconnect-toggle" onclick="return toggle('Transport._parse_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_disconnect">_parse_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_disconnect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_disconnect-expanded"><a name="L1890"></a><tt class="py-lineno">1890</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-501', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt> <tt class="py-line"> <tt class="py-name">desc</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name" targets="Method paramiko.Message.get_string()=paramiko.Message-class.html#get_string"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-502', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-503" class="py-name"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -3144,11 +3184,11 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-478', 'INFO', 'link-347');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Disconnect (code %d): %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1860"></a><tt class="py-lineno">1860</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_global_request"></a><div id="Transport._parse_global_request-def"><a name="L1861"></a><tt class="py-lineno">1861</tt> <a class="py-toggle" href="#" id="Transport._parse_global_request-toggle" onclick="return toggle('Transport._parse_global_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_global_request">_parse_global_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_global_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_global_request-expanded"><a name="L1862"></a><tt class="py-lineno">1862</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-479', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-480" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-503', 'INFO', 'link-372');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Disconnect (code %d): %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1893"></a><tt class="py-lineno">1893</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_global_request"></a><div id="Transport._parse_global_request-def"><a name="L1894"></a><tt class="py-lineno">1894</tt> <a class="py-toggle" href="#" id="Transport._parse_global_request-toggle" onclick="return toggle('Transport._parse_global_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_global_request">_parse_global_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_global_request-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_global_request-expanded"><a name="L1895"></a><tt class="py-lineno">1895</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-504', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3169,10 +3209,10 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-480', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Received global request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt> <tt class="py-line"> <tt class="py-name">want_reply</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-481', 'get_boolean', 'link-399');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-482" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-505', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Received global request "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt> <tt class="py-line"> <tt class="py-name">want_reply</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-506" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-506', 'get_boolean', 'link-424');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-507" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3193,29 +3233,29 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-482', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" global request from server.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'tcpip-forward'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-483', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-484', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1871"></a><tt class="py-lineno">1871</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name" targets="Method paramiko.ServerInterface.check_port_forward_request()=paramiko.ServerInterface-class.html#check_port_forward_request"><a title="paramiko.ServerInterface.check_port_forward_request" class="py-name" href="#" onclick="return doclink('link-485', 'check_port_forward_request', 'link-485');">check_port_forward_request</a></tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ok</tt> <tt class="py-op">!=</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt> </tt>
-<a name="L1873"></a><tt class="py-lineno">1873</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">ok</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
-<a name="L1874"></a><tt class="py-lineno">1874</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'cancel-tcpip-forward'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-486', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-487', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-488" class="py-name" targets="Method paramiko.ServerInterface.cancel_port_forward_request()=paramiko.ServerInterface-class.html#cancel_port_forward_request"><a title="paramiko.ServerInterface.cancel_port_forward_request" class="py-name" href="#" onclick="return doclink('link-488', 'cancel_port_forward_request', 'link-488');">cancel_port_forward_request</a></tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
-<a name="L1878"></a><tt class="py-lineno">1878</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1879"></a><tt class="py-lineno">1879</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-489" class="py-name" targets="Method paramiko.ServerInterface.check_global_request()=paramiko.ServerInterface-class.html#check_global_request"><a title="paramiko.ServerInterface.check_global_request" class="py-name" href="#" onclick="return doclink('link-489', 'check_global_request', 'link-489');">check_global_request</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt> <tt class="py-line"> <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">ok</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt> <tt class="py-line"> <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-name">ok</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">want_reply</tt><tt class="py-op">:</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-490" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-490', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ok</tt><tt class="py-op">:</tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-491', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-492" class="py-name" targets="Variable paramiko.auth_handler.MSG_REQUEST_SUCCESS=paramiko.auth_handler-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.channel.MSG_REQUEST_SUCCESS=paramiko.channel-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.client.MSG_REQUEST_SUCCESS=paramiko.client-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.common.MSG_REQUEST_SUCCESS=paramiko.common-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.dsskey.MSG_REQUEST_SUCCESS=paramiko.dsskey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.hostkeys.MSG_REQUEST_SUCCESS=paramiko.hostkeys-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.kex_gex.MSG_REQUEST_SUCCESS=paramiko.kex_gex-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.kex_group1.MSG_REQUEST_SUCCESS=paramiko.kex_group1-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.packet.MSG_REQUEST_SUCCESS=paramiko.packet-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.pkey.MSG_REQUEST_SUCCESS=paramiko.pkey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.rsakey.MSG_REQUEST_SUCCESS=paramiko.rsakey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.server.MSG_REQUEST_SUCCESS=paramiko.server-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp.MSG_REQUEST_SUCCESS=paramiko.sftp-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_attr.MSG_REQUEST_SUCCESS=paramiko.sftp_attr-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_client.MSG_REQUEST_SUCCESS=paramiko.sftp_client-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_file.MSG_REQUEST_SUCCESS=paramiko.sftp_file-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_handle.MSG_REQUEST_SUCCESS=paramiko.sftp_handle-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_server.MSG_REQUEST_SUCCESS=paramiko.sftp_server-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_si.MSG_REQUEST_SUCCESS=paramiko.sftp_si-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.transport.MSG_REQUEST_SUCCESS=paramiko.transport-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.util.MSG_REQUEST_SUCCESS=paramiko.util-module.html#MSG_REQUEST_SUCCESS"><a title="paramiko.auth_handler.MSG_REQUEST_SUCCESS
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-507', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" global request from server.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'tcpip-forward'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-508', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-509', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-510" class="py-name" targets="Method paramiko.ServerInterface.check_port_forward_request()=paramiko.ServerInterface-class.html#check_port_forward_request"><a title="paramiko.ServerInterface.check_port_forward_request" class="py-name" href="#" onclick="return doclink('link-510', 'check_port_forward_request', 'link-510');">check_port_forward_request</a></tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ok</tt> <tt class="py-op">!=</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">ok</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'cancel-tcpip-forward'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1908"></a><tt class="py-lineno">1908</tt> <tt class="py-line"> <tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-511" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-511', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1909"></a><tt class="py-lineno">1909</tt> <tt class="py-line"> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-512', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-513" class="py-name" targets="Method paramiko.ServerInterface.cancel_port_forward_request()=paramiko.ServerInterface-class.html#cancel_port_forward_request"><a title="paramiko.ServerInterface.cancel_port_forward_request" class="py-name" href="#" onclick="return doclink('link-513', 'cancel_port_forward_request', 'link-513');">cancel_port_forward_request</a></tt><tt class="py-op">(</tt><tt class="py-name">address</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
+<a name="L1911"></a><tt class="py-lineno">1911</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1912"></a><tt class="py-lineno">1912</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1913"></a><tt class="py-lineno">1913</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name" targets="Method paramiko.ServerInterface.check_global_request()=paramiko.ServerInterface-class.html#check_global_request"><a title="paramiko.ServerInterface.check_global_request" class="py-name" href="#" onclick="return doclink('link-514', 'check_global_request', 'link-514');">check_global_request</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L1914"></a><tt class="py-lineno">1914</tt> <tt class="py-line"> <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1915"></a><tt class="py-lineno">1915</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">ok</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
+<a name="L1916"></a><tt class="py-lineno">1916</tt> <tt class="py-line"> <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-name">ok</tt> </tt>
+<a name="L1917"></a><tt class="py-lineno">1917</tt> <tt class="py-line"> <tt class="py-name">ok</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">want_reply</tt><tt class="py-op">:</tt> </tt>
+<a name="L1919"></a><tt class="py-lineno">1919</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-515" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-515', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1920"></a><tt class="py-lineno">1920</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ok</tt><tt class="py-op">:</tt> </tt>
+<a name="L1921"></a><tt class="py-lineno">1921</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-516', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-517" class="py-name" targets="Variable paramiko.auth_handler.MSG_REQUEST_SUCCESS=paramiko.auth_handler-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.channel.MSG_REQUEST_SUCCESS=paramiko.channel-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.client.MSG_REQUEST_SUCCESS=paramiko.client-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.common.MSG_REQUEST_SUCCESS=paramiko.common-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.dsskey.MSG_REQUEST_SUCCESS=paramiko.dsskey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.hostkeys.MSG_REQUEST_SUCCESS=paramiko.hostkeys-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.kex_gex.MSG_REQUEST_SUCCESS=paramiko.kex_gex-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.kex_group1.MSG_REQUEST_SUCCESS=paramiko.kex_group1-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.packet.MSG_REQUEST_SUCCESS=paramiko.packet-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.pkey.MSG_REQUEST_SUCCESS=paramiko.pkey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.rsakey.MSG_REQUEST_SUCCESS=paramiko.rsakey-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.server.MSG_REQUEST_SUCCESS=paramiko.server-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp.MSG_REQUEST_SUCCESS=paramiko.sftp-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_attr.MSG_REQUEST_SUCCESS=paramiko.sftp_attr-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_client.MSG_REQUEST_SUCCESS=paramiko.sftp_client-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_file.MSG_REQUEST_SUCCESS=paramiko.sftp_file-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_handle.MSG_REQUEST_SUCCESS=paramiko.sftp_handle-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_server.MSG_REQUEST_SUCCESS=paramiko.sftp_server-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.sftp_si.MSG_REQUEST_SUCCESS=paramiko.sftp_si-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.transport.MSG_REQUEST_SUCCESS=paramiko.transport-module.html#MSG_REQUEST_SUCCESS,Variable paramiko.util.MSG_REQUEST_SUCCESS=paramiko.util-module.html#MSG_REQUEST_SUCCESS"><a title="paramiko.auth_handler.MSG_REQUEST_SUCCESS
paramiko.channel.MSG_REQUEST_SUCCESS
paramiko.client.MSG_REQUEST_SUCCESS
paramiko.common.MSG_REQUEST_SUCCESS
@@ -3235,11 +3275,11 @@ paramiko.sftp_handle.MSG_REQUEST_SUCCESS
paramiko.sftp_server.MSG_REQUEST_SUCCESS
paramiko.sftp_si.MSG_REQUEST_SUCCESS
paramiko.transport.MSG_REQUEST_SUCCESS
-paramiko.util.MSG_REQUEST_SUCCESS" class="py-name" href="#" onclick="return doclink('link-492', 'MSG_REQUEST_SUCCESS', 'link-492');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="paramiko.HostKeys.add
-paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-493', 'add', 'link-186');">add</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">extra</tt><tt class="py-op">)</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-494', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-495" class="py-name" targets="Variable paramiko.auth_handler.MSG_REQUEST_FAILURE=paramiko.auth_handler-module.html#MSG_REQUEST_FAILURE,Variable paramiko.channel.MSG_REQUEST_FAILURE=paramiko.channel-module.html#MSG_REQUEST_FAILURE,Variable paramiko.client.MSG_REQUEST_FAILURE=paramiko.client-module.html#MSG_REQUEST_FAILURE,Variable paramiko.common.MSG_REQUEST_FAILURE=paramiko.common-module.html#MSG_REQUEST_FAILURE,Variable paramiko.dsskey.MSG_REQUEST_FAILURE=paramiko.dsskey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.hostkeys.MSG_REQUEST_FAILURE=paramiko.hostkeys-module.html#MSG_REQUEST_FAILURE,Variable paramiko.kex_gex.MSG_REQUEST_FAILURE=paramiko.kex_gex-module.html#MSG_REQUEST_FAILURE,Variable paramiko.kex_group1.MSG_REQUEST_FAILURE=paramiko.kex_group1-module.html#MSG_REQUEST_FAILURE,Variable paramiko.packet.MSG_REQUEST_FAILURE=paramiko.packet-module.html#MSG_REQUEST_FAILURE,Variable paramiko.pkey.MSG_REQUEST_FAILURE=paramiko.pkey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.rsakey.MSG_REQUEST_FAILURE=paramiko.rsakey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.server.MSG_REQUEST_FAILURE=paramiko.server-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp.MSG_REQUEST_FAILURE=paramiko.sftp-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_attr.MSG_REQUEST_FAILURE=paramiko.sftp_attr-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_client.MSG_REQUEST_FAILURE=paramiko.sftp_client-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_file.MSG_REQUEST_FAILURE=paramiko.sftp_file-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_handle.MSG_REQUEST_FAILURE=paramiko.sftp_handle-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_server.MSG_REQUEST_FAILURE=paramiko.sftp_server-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_si.MSG_REQUEST_FAILURE=paramiko.sftp_si-module.html#MSG_REQUEST_FAILURE,Variable paramiko.transport.MSG_REQUEST_FAILURE=paramiko.transport-module.html#MSG_REQUEST_FAILURE,Variable paramiko.util.MSG_REQUEST_FAILURE=paramiko.util-module.html#MSG_REQUEST_FAILURE"><a title="paramiko.auth_handler.MSG_REQUEST_FAILURE
+paramiko.util.MSG_REQUEST_SUCCESS" class="py-name" href="#" onclick="return doclink('link-517', 'MSG_REQUEST_SUCCESS', 'link-517');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-518" class="py-name"><a title="paramiko.HostKeys.add
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-518', 'add', 'link-191');">add</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">extra</tt><tt class="py-op">)</tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-519', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-520" class="py-name" targets="Variable paramiko.auth_handler.MSG_REQUEST_FAILURE=paramiko.auth_handler-module.html#MSG_REQUEST_FAILURE,Variable paramiko.channel.MSG_REQUEST_FAILURE=paramiko.channel-module.html#MSG_REQUEST_FAILURE,Variable paramiko.client.MSG_REQUEST_FAILURE=paramiko.client-module.html#MSG_REQUEST_FAILURE,Variable paramiko.common.MSG_REQUEST_FAILURE=paramiko.common-module.html#MSG_REQUEST_FAILURE,Variable paramiko.dsskey.MSG_REQUEST_FAILURE=paramiko.dsskey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.hostkeys.MSG_REQUEST_FAILURE=paramiko.hostkeys-module.html#MSG_REQUEST_FAILURE,Variable paramiko.kex_gex.MSG_REQUEST_FAILURE=paramiko.kex_gex-module.html#MSG_REQUEST_FAILURE,Variable paramiko.kex_group1.MSG_REQUEST_FAILURE=paramiko.kex_group1-module.html#MSG_REQUEST_FAILURE,Variable paramiko.packet.MSG_REQUEST_FAILURE=paramiko.packet-module.html#MSG_REQUEST_FAILURE,Variable paramiko.pkey.MSG_REQUEST_FAILURE=paramiko.pkey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.rsakey.MSG_REQUEST_FAILURE=paramiko.rsakey-module.html#MSG_REQUEST_FAILURE,Variable paramiko.server.MSG_REQUEST_FAILURE=paramiko.server-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp.MSG_REQUEST_FAILURE=paramiko.sftp-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_attr.MSG_REQUEST_FAILURE=paramiko.sftp_attr-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_client.MSG_REQUEST_FAILURE=paramiko.sftp_client-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_file.MSG_REQUEST_FAILURE=paramiko.sftp_file-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_handle.MSG_REQUEST_FAILURE=paramiko.sftp_handle-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_server.MSG_REQUEST_FAILURE=paramiko.sftp_server-module.html#MSG_REQUEST_FAILURE,Variable paramiko.sftp_si.MSG_REQUEST_FAILURE=paramiko.sftp_si-module.html#MSG_REQUEST_FAILURE,Variable paramiko.transport.MSG_REQUEST_FAILURE=paramiko.transport-module.html#MSG_REQUEST_FAILURE,Variable paramiko.util.MSG_REQUEST_FAILURE=paramiko.util-module.html#MSG_REQUEST_FAILURE"><a title="paramiko.auth_handler.MSG_REQUEST_FAILURE
paramiko.channel.MSG_REQUEST_FAILURE
paramiko.client.MSG_REQUEST_FAILURE
paramiko.common.MSG_REQUEST_FAILURE
@@ -3259,11 +3299,11 @@ paramiko.sftp_handle.MSG_REQUEST_FAILURE
paramiko.sftp_server.MSG_REQUEST_FAILURE
paramiko.sftp_si.MSG_REQUEST_FAILURE
paramiko.transport.MSG_REQUEST_FAILURE
-paramiko.util.MSG_REQUEST_FAILURE" class="py-name" href="#" onclick="return doclink('link-495', 'MSG_REQUEST_FAILURE', 'link-495');">MSG_REQUEST_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1893"></a><tt class="py-lineno">1893</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_request_success"></a><div id="Transport._parse_request_success-def"><a name="L1894"></a><tt class="py-lineno">1894</tt> <a class="py-toggle" href="#" id="Transport._parse_request_success-toggle" onclick="return toggle('Transport._parse_request_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_request_success">_parse_request_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_request_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_request_success-expanded"><a name="L1895"></a><tt class="py-lineno">1895</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.MSG_REQUEST_FAILURE" class="py-name" href="#" onclick="return doclink('link-520', 'MSG_REQUEST_FAILURE', 'link-520');">MSG_REQUEST_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1926"></a><tt class="py-lineno">1926</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_request_success"></a><div id="Transport._parse_request_success-def"><a name="L1927"></a><tt class="py-lineno">1927</tt> <a class="py-toggle" href="#" id="Transport._parse_request_success-toggle" onclick="return toggle('Transport._parse_request_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_request_success">_parse_request_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_request_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_request_success-expanded"><a name="L1928"></a><tt class="py-lineno">1928</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-521" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3284,15 +3324,15 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-496', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Global request successful.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1896"></a><tt class="py-lineno">1896</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-521', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Global request successful.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-497', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1899"></a><tt class="py-lineno">1899</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_request_failure"></a><div id="Transport._parse_request_failure-def"><a name="L1900"></a><tt class="py-lineno">1900</tt> <a class="py-toggle" href="#" id="Transport._parse_request_failure-toggle" onclick="return toggle('Transport._parse_request_failure');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_request_failure">_parse_request_failure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_request_failure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_request_failure-expanded"><a name="L1901"></a><tt class="py-lineno">1901</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-498" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-522', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1932"></a><tt class="py-lineno">1932</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_request_failure"></a><div id="Transport._parse_request_failure-def"><a name="L1933"></a><tt class="py-lineno">1933</tt> <a class="py-toggle" href="#" id="Transport._parse_request_failure-toggle" onclick="return toggle('Transport._parse_request_failure');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_request_failure">_parse_request_failure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_request_failure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_request_failure-expanded"><a name="L1934"></a><tt class="py-lineno">1934</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-523" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3313,22 +3353,22 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-498', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Global request denied.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-499" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-523', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Global request denied.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1935"></a><tt class="py-lineno">1935</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">global_response</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1936"></a><tt class="py-lineno">1936</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">completion_event</tt><tt class="py-op">.</tt><tt id="link-524" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-499', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1905"></a><tt class="py-lineno">1905</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_channel_open_success"></a><div id="Transport._parse_channel_open_success-def"><a name="L1906"></a><tt class="py-lineno">1906</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open_success-toggle" onclick="return toggle('Transport._parse_channel_open_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open_success">_parse_channel_open_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_channel_open_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open_success-expanded"><a name="L1907"></a><tt class="py-lineno">1907</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-500', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1908"></a><tt class="py-lineno">1908</tt> <tt class="py-line"> <tt class="py-name">server_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-501', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1909"></a><tt class="py-lineno">1909</tt> <tt class="py-line"> <tt class="py-name">server_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-502', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt> <tt class="py-line"> <tt class="py-name">server_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-503', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-504', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="paramiko.auth_handler.WARNING
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-524', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1938"></a><tt class="py-lineno">1938</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_channel_open_success"></a><div id="Transport._parse_channel_open_success-def"><a name="L1939"></a><tt class="py-lineno">1939</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open_success-toggle" onclick="return toggle('Transport._parse_channel_open_success');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open_success">_parse_channel_open_success</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_channel_open_success-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open_success-expanded"><a name="L1940"></a><tt class="py-lineno">1940</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-525', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt> <tt class="py-line"> <tt class="py-name">server_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-526', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt> <tt class="py-line"> <tt class="py-name">server_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-527', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt> <tt class="py-line"> <tt class="py-name">server_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-528" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-528', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-529" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-529', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chan</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="paramiko.auth_handler.WARNING
paramiko.channel.WARNING
paramiko.client.WARNING
paramiko.common.WARNING
@@ -3349,12 +3389,12 @@ paramiko.sftp_handle.WARNING
paramiko.sftp_server.WARNING
paramiko.sftp_si.WARNING
paramiko.transport.WARNING
-paramiko.util.WARNING" class="py-name" href="#" onclick="return doclink('link-505', 'WARNING', 'link-311');">WARNING</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Success for unrequested channel! [??]'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1917"></a><tt class="py-lineno">1917</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_remote_channel</tt><tt class="py-op">(</tt><tt class="py-name">server_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">server_window_size</tt><tt class="py-op">,</tt> <tt class="py-name">server_max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-506" class="py-name"><a title="paramiko.auth_handler.INFO
+paramiko.util.WARNING" class="py-name" href="#" onclick="return doclink('link-530', 'WARNING', 'link-336');">WARNING</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Success for unrequested channel! [??]'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1947"></a><tt class="py-lineno">1947</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_remote_channel</tt><tt class="py-op">(</tt><tt class="py-name">server_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">server_window_size</tt><tt class="py-op">,</tt> <tt class="py-name">server_max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-531" class="py-name"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -3375,22 +3415,22 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-506', 'INFO', 'link-347');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d opened.'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1919"></a><tt class="py-lineno">1919</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
-<a name="L1920"></a><tt class="py-lineno">1920</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-531', 'INFO', 'link-372');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d opened.'</tt> <tt class="py-op">%</tt> <tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-507', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1921"></a><tt class="py-lineno">1921</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L1925"></a><tt class="py-lineno">1925</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_channel_open_failure"></a><div id="Transport._parse_channel_open_failure-def"><a name="L1926"></a><tt class="py-lineno">1926</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open_failure-toggle" onclick="return toggle('Transport._parse_channel_open_failure');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open_failure">_parse_channel_open_failure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_channel_open_failure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open_failure-expanded"><a name="L1927"></a><tt class="py-lineno">1927</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-508', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-509', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt> <tt class="py-line"> <tt class="py-name">reason_str</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-510" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-510', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt> <tt class="py-line"> <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-511" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-511', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1931"></a><tt class="py-lineno">1931</tt> <tt class="py-line"> <tt class="py-name">reason_text</tt> <tt class="py-op">=</tt> <tt id="link-512" class="py-name" targets="Variable paramiko.auth_handler.CONNECTION_FAILED_CODE=paramiko.auth_handler-module.html#CONNECTION_FAILED_CODE,Variable paramiko.channel.CONNECTION_FAILED_CODE=paramiko.channel-module.html#CONNECTION_FAILED_CODE,Variable paramiko.client.CONNECTION_FAILED_CODE=paramiko.client-module.html#CONNECTION_FAILED_CODE,Variable paramiko.common.CONNECTION_FAILED_CODE=paramiko.common-module.html#CONNECTION_FAILED_CODE,Variable paramiko.dsskey.CONNECTION_FAILED_CODE=paramiko.dsskey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.hostkeys.CONNECTION_FAILED_CODE=paramiko.hostkeys-module.html#CONNECTION_FAILED_CODE,Variable paramiko.kex_gex.CONNECTION_FAILED_CODE=paramiko.kex_gex-module.html#CONNECTION_FAILED_CODE,Variable paramiko.kex_group1.CONNECTION_FAILED_CODE=paramiko.kex_group1-module.html#CONNECTION_FAILED_CODE,Variable paramiko.packet.CONNECTION_FAILED_CODE=paramiko.packet-module.html#CONNECTION_FAILED_CODE,Variable paramiko.pkey.CONNECTION_FAILED_CODE=paramiko.pkey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.rsakey.CONNECTION_FAILED_CODE=paramiko.rsakey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.server.CONNECTION_FAILED_CODE=paramiko.server-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp.CONNECTION_FAILED_CODE=paramiko.sftp-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_attr.CONNECTION_FAILED_CODE=paramiko.sftp_attr-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_client.CONNECTION_FAILED_CODE=paramiko.sftp_client-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_file.CONNECTION_FAILED_CODE=paramiko.sftp_file-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_handle.CONNECTION_FAILED_CODE=paramiko.sftp_handle-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_server.CONNECTION_FAILED_CODE=paramiko.sftp_server-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_si.CONNECTION_FAILED_CODE=paramiko.sftp_si-module.html#CONNECTION_FAILED_CODE,Variable paramiko.transport.CONNECTION_FAILED_CODE=paramiko.transport-module.html#CONNECTION_FAILED_CODE,Variable paramiko.util.CONNECTION_FAILED_CODE=paramiko.util-module.html#CONNECTION_FAILED_CODE"><a title="paramiko.auth_handler.CONNECTION_FAILED_CODE
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-532', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L1958"></a><tt class="py-lineno">1958</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_channel_open_failure"></a><div id="Transport._parse_channel_open_failure-def"><a name="L1959"></a><tt class="py-lineno">1959</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open_failure-toggle" onclick="return toggle('Transport._parse_channel_open_failure');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open_failure">_parse_channel_open_failure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_channel_open_failure-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open_failure-expanded"><a name="L1960"></a><tt class="py-lineno">1960</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-533', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1961"></a><tt class="py-lineno">1961</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-534', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt> <tt class="py-line"> <tt class="py-name">reason_str</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-535" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-535', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt> <tt class="py-line"> <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-536', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt> <tt class="py-line"> <tt class="py-name">reason_text</tt> <tt class="py-op">=</tt> <tt id="link-537" class="py-name" targets="Variable paramiko.auth_handler.CONNECTION_FAILED_CODE=paramiko.auth_handler-module.html#CONNECTION_FAILED_CODE,Variable paramiko.channel.CONNECTION_FAILED_CODE=paramiko.channel-module.html#CONNECTION_FAILED_CODE,Variable paramiko.client.CONNECTION_FAILED_CODE=paramiko.client-module.html#CONNECTION_FAILED_CODE,Variable paramiko.common.CONNECTION_FAILED_CODE=paramiko.common-module.html#CONNECTION_FAILED_CODE,Variable paramiko.dsskey.CONNECTION_FAILED_CODE=paramiko.dsskey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.hostkeys.CONNECTION_FAILED_CODE=paramiko.hostkeys-module.html#CONNECTION_FAILED_CODE,Variable paramiko.kex_gex.CONNECTION_FAILED_CODE=paramiko.kex_gex-module.html#CONNECTION_FAILED_CODE,Variable paramiko.kex_group1.CONNECTION_FAILED_CODE=paramiko.kex_group1-module.html#CONNECTION_FAILED_CODE,Variable paramiko.packet.CONNECTION_FAILED_CODE=paramiko.packet-module.html#CONNECTION_FAILED_CODE,Variable paramiko.pkey.CONNECTION_FAILED_CODE=paramiko.pkey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.rsakey.CONNECTION_FAILED_CODE=paramiko.rsakey-module.html#CONNECTION_FAILED_CODE,Variable paramiko.server.CONNECTION_FAILED_CODE=paramiko.server-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp.CONNECTION_FAILED_CODE=paramiko.sftp-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_attr.CONNECTION_FAILED_CODE=paramiko.sftp_attr-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_client.CONNECTION_FAILED_CODE=paramiko.sftp_client-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_file.CONNECTION_FAILED_CODE=paramiko.sftp_file-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_handle.CONNECTION_FAILED_CODE=paramiko.sftp_handle-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_server.CONNECTION_FAILED_CODE=paramiko.sftp_server-module.html#CONNECTION_FAILED_CODE,Variable paramiko.sftp_si.CONNECTION_FAILED_CODE=paramiko.sftp_si-module.html#CONNECTION_FAILED_CODE,Variable paramiko.transport.CONNECTION_FAILED_CODE=paramiko.transport-module.html#CONNECTION_FAILED_CODE,Variable paramiko.util.CONNECTION_FAILED_CODE=paramiko.util-module.html#CONNECTION_FAILED_CODE"><a title="paramiko.auth_handler.CONNECTION_FAILED_CODE
paramiko.channel.CONNECTION_FAILED_CODE
paramiko.client.CONNECTION_FAILED_CODE
paramiko.common.CONNECTION_FAILED_CODE
@@ -3410,9 +3450,9 @@ paramiko.sftp_handle.CONNECTION_FAILED_CODE
paramiko.sftp_server.CONNECTION_FAILED_CODE
paramiko.sftp_si.CONNECTION_FAILED_CODE
paramiko.transport.CONNECTION_FAILED_CODE
-paramiko.util.CONNECTION_FAILED_CODE" class="py-name" href="#" onclick="return doclink('link-512', 'CONNECTION_FAILED_CODE', 'link-512');">CONNECTION_FAILED_CODE</a></tt><tt class="py-op">.</tt><tt id="link-513" class="py-name"><a title="paramiko.SFTPClient.get
-paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-513', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">,</tt> <tt class="py-string">'(unknown code)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1932"></a><tt class="py-lineno">1932</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="paramiko.auth_handler.INFO
+paramiko.util.CONNECTION_FAILED_CODE" class="py-name" href="#" onclick="return doclink('link-537', 'CONNECTION_FAILED_CODE', 'link-537');">CONNECTION_FAILED_CODE</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="paramiko.SFTPClient.get
+paramiko.transport.ChannelMap.get" class="py-name" href="#" onclick="return doclink('link-538', 'get', 'link-76');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">,</tt> <tt class="py-string">'(unknown code)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-539" class="py-name"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -3433,31 +3473,31 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-514', 'INFO', 'link-347');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d open FAILED: %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">reason_str</tt><tt class="py-op">,</tt> <tt class="py-name">reason_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1933"></a><tt class="py-lineno">1933</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1934"></a><tt class="py-lineno">1934</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1935"></a><tt class="py-lineno">1935</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt id="link-515" class="py-name"><a title="paramiko.ChannelException" class="py-name" href="#" onclick="return doclink('link-515', 'ChannelException', 'link-44');">ChannelException</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">,</tt> <tt class="py-name">reason_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L1936"></a><tt class="py-lineno">1936</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="paramiko.transport.ChannelMap.delete" class="py-name" href="#" onclick="return doclink('link-516', 'delete', 'link-258');">delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-517" class="py-name"><a title="paramiko.pipe.OrPipe.set
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-539', 'INFO', 'link-372');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d open FAILED: %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">reason_str</tt><tt class="py-op">,</tt> <tt class="py-name">reason_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1968"></a><tt class="py-lineno">1968</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">saved_exception</tt> <tt class="py-op">=</tt> <tt id="link-540" class="py-name"><a title="paramiko.ChannelException" class="py-name" href="#" onclick="return doclink('link-540', 'ChannelException', 'link-44');">ChannelException</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">,</tt> <tt class="py-name">reason_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="paramiko.transport.ChannelMap.delete" class="py-name" href="#" onclick="return doclink('link-541', 'delete', 'link-263');">delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chanid</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">:</tt> </tt>
+<a name="L1972"></a><tt class="py-lineno">1972</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="paramiko.pipe.OrPipe.set
paramiko.pipe.PosixPipe.set
-paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-517', 'set', 'link-332');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L1944"></a><tt class="py-lineno">1944</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_channel_open"></a><div id="Transport._parse_channel_open-def"><a name="L1945"></a><tt class="py-lineno">1945</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open-toggle" onclick="return toggle('Transport._parse_channel_open');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open">_parse_channel_open</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_channel_open-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open-expanded"><a name="L1946"></a><tt class="py-lineno">1946</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-518" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-518', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1947"></a><tt class="py-lineno">1947</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-519', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt> <tt class="py-line"> <tt class="py-name">initial_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-520" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-520', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1949"></a><tt class="py-lineno">1949</tt> <tt class="py-line"> <tt class="py-name">max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-521', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-522', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-523', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1954"></a><tt class="py-lineno">1954</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-542', 'set', 'link-357');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1973"></a><tt class="py-lineno">1973</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channel_events</tt><tt class="py-op">[</tt><tt class="py-name">chanid</tt><tt class="py-op">]</tt> </tt>
+<a name="L1974"></a><tt class="py-lineno">1974</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1976"></a><tt class="py-lineno">1976</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L1977"></a><tt class="py-lineno">1977</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_channel_open"></a><div id="Transport._parse_channel_open-def"><a name="L1978"></a><tt class="py-lineno">1978</tt> <a class="py-toggle" href="#" id="Transport._parse_channel_open-toggle" onclick="return toggle('Transport._parse_channel_open');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_channel_open">_parse_channel_open</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_channel_open-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_channel_open-expanded"><a name="L1979"></a><tt class="py-lineno">1979</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-543', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1980"></a><tt class="py-lineno">1980</tt> <tt class="py-line"> <tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-544', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1981"></a><tt class="py-lineno">1981</tt> <tt class="py-line"> <tt class="py-name">initial_window_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-545', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt> <tt class="py-line"> <tt class="py-name">max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-546" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-546', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-547', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1986"></a><tt class="py-lineno">1986</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-548', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3478,18 +3518,18 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-524', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Incoming x11 connection from %s:%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1955"></a><tt class="py-lineno">1955</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1956"></a><tt class="py-lineno">1956</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1958"></a><tt class="py-lineno">1958</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1960"></a><tt class="py-lineno">1960</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1961"></a><tt class="py-lineno">1961</tt> <tt class="py-line"> <tt class="py-name">server_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-525', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1962"></a><tt class="py-lineno">1962</tt> <tt class="py-line"> <tt class="py-name">server_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-526', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-527', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1964"></a><tt class="py-lineno">1964</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-528" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-528', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-529" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-549', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Incoming x11 connection from %s:%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1988"></a><tt class="py-lineno">1988</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1989"></a><tt class="py-lineno">1989</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1991"></a><tt class="py-lineno">1991</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L1992"></a><tt class="py-lineno">1992</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1993"></a><tt class="py-lineno">1993</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt> <tt class="py-line"> <tt class="py-name">server_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-550', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt> <tt class="py-line"> <tt class="py-name">server_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-551', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-552', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-553', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1998"></a><tt class="py-lineno">1998</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-554" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3510,14 +3550,14 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-529', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Incoming tcp forwarded connection from %s:%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L1972"></a><tt class="py-lineno">1972</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-554', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Incoming tcp forwarded connection from %s:%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1999"></a><tt class="py-lineno">1999</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2000"></a><tt class="py-lineno">2000</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2002"></a><tt class="py-lineno">2002</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2004"></a><tt class="py-lineno">2004</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L2005"></a><tt class="py-lineno">2005</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-555" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3538,9 +3578,9 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-530', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" channel request from server.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L1973"></a><tt class="py-lineno">1973</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt id="link-531" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.auth_handler-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.channel.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.channel-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.common.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.common-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.dsskey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.hostkeys-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.kex_gex-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.kex_group1-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.packet-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.pkey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.rsakey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_attr-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_file-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_handle.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_handle-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_si.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_si-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.transport.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.transport-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"><a title="paramiko.auth_handler.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-555', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" channel request from server.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt id="link-556" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.auth_handler-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.channel.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.channel-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.common.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.common-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.dsskey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.hostkeys-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.kex_gex-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.kex_group1-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.packet-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.pkey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.rsakey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_attr-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_file-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_handle.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_handle-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.sftp_si.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.sftp_si-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.transport.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.transport-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED,Variable paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED=paramiko.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"><a title="paramiko.auth_handler.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.channel.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.common.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
@@ -3560,25 +3600,25 @@ paramiko.sftp_handle.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.sftp_server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.sftp_si.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
paramiko.transport.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
-paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED" class="py-name" href="#" onclick="return doclink('link-531', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-531');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt> </tt>
-<a name="L1975"></a><tt class="py-lineno">1975</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1976"></a><tt class="py-lineno">1976</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1977"></a><tt class="py-lineno">1977</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1978"></a><tt class="py-lineno">1978</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'direct-tcpip'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt> <tt class="py-line"> <tt class="py-comment"># handle direct-tcpip requests comming from the client</tt> </tt>
-<a name="L1983"></a><tt class="py-lineno">1983</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">dest_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-532', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1984"></a><tt class="py-lineno">1984</tt> <tt class="py-line"> <tt class="py-name">dest_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-533', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1985"></a><tt class="py-lineno">1985</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-534', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1986"></a><tt class="py-lineno">1986</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-535" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-535', 'get_int', 'link-162');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name" targets="Method paramiko.ServerInterface.check_channel_direct_tcpip_request()=paramiko.ServerInterface-class.html#check_channel_direct_tcpip_request"><a title="paramiko.ServerInterface.check_channel_direct_tcpip_request" class="py-name" href="#" onclick="return doclink('link-536', 'check_channel_direct_tcpip_request', 'link-536');">check_channel_direct_tcpip_request</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1989"></a><tt class="py-lineno">1989</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-name">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1990"></a><tt class="py-lineno">1990</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1991"></a><tt class="py-lineno">1991</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name" targets="Method paramiko.ServerInterface.check_channel_request()=paramiko.ServerInterface-class.html#check_channel_request"><a title="paramiko.ServerInterface.check_channel_request" class="py-name" href="#" onclick="return doclink('link-537', 'check_channel_request', 'link-537');">check_channel_request</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">,</tt> <tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reason</tt> <tt class="py-op">!=</tt> <tt id="link-538" class="py-name" targets="Variable paramiko.auth_handler.OPEN_SUCCEEDED=paramiko.auth_handler-module.html#OPEN_SUCCEEDED,Variable paramiko.channel.OPEN_SUCCEEDED=paramiko.channel-module.html#OPEN_SUCCEEDED,Variable paramiko.client.OPEN_SUCCEEDED=paramiko.client-module.html#OPEN_SUCCEEDED,Variable paramiko.common.OPEN_SUCCEEDED=paramiko.common-module.html#OPEN_SUCCEEDED,Variable paramiko.dsskey.OPEN_SUCCEEDED=paramiko.dsskey-module.html#OPEN_SUCCEEDED,Variable paramiko.hostkeys.OPEN_SUCCEEDED=paramiko.hostkeys-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_gex.OPEN_SUCCEEDED=paramiko.kex_gex-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_group1.OPEN_SUCCEEDED=paramiko.kex_group1-module.html#OPEN_SUCCEEDED,Variable paramiko.packet.OPEN_SUCCEEDED=paramiko.packet-module.html#OPEN_SUCCEEDED,Variable paramiko.pkey.OPEN_SUCCEEDED=paramiko.pkey-module.html#OPEN_SUCCEEDED,Variable paramiko.rsakey.OPEN_SUCCEEDED=paramiko.rsakey-module.html#OPEN_SUCCEEDED,Variable paramiko.server.OPEN_SUCCEEDED=paramiko.server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp.OPEN_SUCCEEDED=paramiko.sftp-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_attr.OPEN_SUCCEEDED=paramiko.sftp_attr-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_client.OPEN_SUCCEEDED=paramiko.sftp_client-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_file.OPEN_SUCCEEDED=paramiko.sftp_file-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_handle.OPEN_SUCCEEDED=paramiko.sftp_handle-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_server.OPEN_SUCCEEDED=paramiko.sftp_server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_si.OPEN_SUCCEEDED=paramiko.sftp_si-module.html#OPEN_SUCCEEDED,Variable paramiko.transport.OPEN_SUCCEEDED=paramiko.transport-module.html#OPEN_SUCCEEDED,Variable paramiko.util.OPEN_SUCCEEDED=paramiko.util-module.html#OPEN_SUCCEEDED"><a title="paramiko.auth_handler.OPEN_SUCCEEDED
+paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED" class="py-name" href="#" onclick="return doclink('link-556', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-556');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2011"></a><tt class="py-lineno">2011</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_next_channel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2014"></a><tt class="py-lineno">2014</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'direct-tcpip'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2015"></a><tt class="py-lineno">2015</tt> <tt class="py-line"> <tt class="py-comment"># handle direct-tcpip requests comming from the client</tt> </tt>
+<a name="L2016"></a><tt class="py-lineno">2016</tt> <tt class="py-line"> <tt class="py-name">dest_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-557', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2017"></a><tt class="py-lineno">2017</tt> <tt class="py-line"> <tt class="py-name">dest_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-558', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2018"></a><tt class="py-lineno">2018</tt> <tt class="py-line"> <tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-559', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2019"></a><tt class="py-lineno">2019</tt> <tt class="py-line"> <tt class="py-name">origin_port</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-560', 'get_int', 'link-167');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-561" class="py-name" targets="Method paramiko.ServerInterface.check_channel_direct_tcpip_request()=paramiko.ServerInterface-class.html#check_channel_direct_tcpip_request"><a title="paramiko.ServerInterface.check_channel_direct_tcpip_request" class="py-name" href="#" onclick="return doclink('link-561', 'check_channel_direct_tcpip_request', 'link-561');">check_channel_direct_tcpip_request</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt> <tt class="py-line"> <tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">dest_addr</tt><tt class="py-op">,</tt> <tt class="py-name">dest_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-562" class="py-name" targets="Method paramiko.ServerInterface.check_channel_request()=paramiko.ServerInterface-class.html#check_channel_request"><a title="paramiko.ServerInterface.check_channel_request" class="py-name" href="#" onclick="return doclink('link-562', 'check_channel_request', 'link-562');">check_channel_request</a></tt><tt class="py-op">(</tt><tt class="py-name">kind</tt><tt class="py-op">,</tt> <tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L2025"></a><tt class="py-lineno">2025</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reason</tt> <tt class="py-op">!=</tt> <tt id="link-563" class="py-name" targets="Variable paramiko.auth_handler.OPEN_SUCCEEDED=paramiko.auth_handler-module.html#OPEN_SUCCEEDED,Variable paramiko.channel.OPEN_SUCCEEDED=paramiko.channel-module.html#OPEN_SUCCEEDED,Variable paramiko.client.OPEN_SUCCEEDED=paramiko.client-module.html#OPEN_SUCCEEDED,Variable paramiko.common.OPEN_SUCCEEDED=paramiko.common-module.html#OPEN_SUCCEEDED,Variable paramiko.dsskey.OPEN_SUCCEEDED=paramiko.dsskey-module.html#OPEN_SUCCEEDED,Variable paramiko.hostkeys.OPEN_SUCCEEDED=paramiko.hostkeys-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_gex.OPEN_SUCCEEDED=paramiko.kex_gex-module.html#OPEN_SUCCEEDED,Variable paramiko.kex_group1.OPEN_SUCCEEDED=paramiko.kex_group1-module.html#OPEN_SUCCEEDED,Variable paramiko.packet.OPEN_SUCCEEDED=paramiko.packet-module.html#OPEN_SUCCEEDED,Variable paramiko.pkey.OPEN_SUCCEEDED=paramiko.pkey-module.html#OPEN_SUCCEEDED,Variable paramiko.rsakey.OPEN_SUCCEEDED=paramiko.rsakey-module.html#OPEN_SUCCEEDED,Variable paramiko.server.OPEN_SUCCEEDED=paramiko.server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp.OPEN_SUCCEEDED=paramiko.sftp-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_attr.OPEN_SUCCEEDED=paramiko.sftp_attr-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_client.OPEN_SUCCEEDED=paramiko.sftp_client-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_file.OPEN_SUCCEEDED=paramiko.sftp_file-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_handle.OPEN_SUCCEEDED=paramiko.sftp_handle-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_server.OPEN_SUCCEEDED=paramiko.sftp_server-module.html#OPEN_SUCCEEDED,Variable paramiko.sftp_si.OPEN_SUCCEEDED=paramiko.sftp_si-module.html#OPEN_SUCCEEDED,Variable paramiko.transport.OPEN_SUCCEEDED=paramiko.transport-module.html#OPEN_SUCCEEDED,Variable paramiko.util.OPEN_SUCCEEDED=paramiko.util-module.html#OPEN_SUCCEEDED"><a title="paramiko.auth_handler.OPEN_SUCCEEDED
paramiko.channel.OPEN_SUCCEEDED
paramiko.client.OPEN_SUCCEEDED
paramiko.common.OPEN_SUCCEEDED
@@ -3598,8 +3638,8 @@ paramiko.sftp_handle.OPEN_SUCCEEDED
paramiko.sftp_server.OPEN_SUCCEEDED
paramiko.sftp_si.OPEN_SUCCEEDED
paramiko.transport.OPEN_SUCCEEDED
-paramiko.util.OPEN_SUCCEEDED" class="py-name" href="#" onclick="return doclink('link-538', 'OPEN_SUCCEEDED', 'link-538');">OPEN_SUCCEEDED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-539" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.OPEN_SUCCEEDED" class="py-name" href="#" onclick="return doclink('link-563', 'OPEN_SUCCEEDED', 'link-563');">OPEN_SUCCEEDED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-564" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3620,11 +3660,11 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-539', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" channel request from client.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reject</tt><tt class="py-op">:</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-540" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-540', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-541', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-542" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.channel.MSG_CHANNEL_OPEN_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.client.MSG_CHANNEL_OPEN_FAILURE=paramiko.client-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.common.MSG_CHANNEL_OPEN_FAILURE=paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.packet.MSG_CHANNEL_OPEN_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.server.MSG_CHANNEL_OPEN_FAILURE=paramiko.server-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.transport.MSG_CHANNEL_OPEN_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.util.MSG_CHANNEL_OPEN_FAILURE=paramiko.util-module.html#MSG_CHANNEL_OPEN_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-564', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rejecting "%s" channel request from client.'</tt> <tt class="py-op">%</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L2027"></a><tt class="py-lineno">2027</tt> <tt class="py-line"> <tt class="py-name">reject</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reject</tt><tt class="py-op">:</tt> </tt>
+<a name="L2029"></a><tt class="py-lineno">2029</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-565" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-565', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2030"></a><tt class="py-lineno">2030</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-566', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-567" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.channel.MSG_CHANNEL_OPEN_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.client.MSG_CHANNEL_OPEN_FAILURE=paramiko.client-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.common.MSG_CHANNEL_OPEN_FAILURE=paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.packet.MSG_CHANNEL_OPEN_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.server.MSG_CHANNEL_OPEN_FAILURE=paramiko.server-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.transport.MSG_CHANNEL_OPEN_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_OPEN_FAILURE,Variable paramiko.util.MSG_CHANNEL_OPEN_FAILURE=paramiko.util-module.html#MSG_CHANNEL_OPEN_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE
paramiko.channel.MSG_CHANNEL_OPEN_FAILURE
paramiko.client.MSG_CHANNEL_OPEN_FAILURE
paramiko.common.MSG_CHANNEL_OPEN_FAILURE
@@ -3644,27 +3684,27 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN_FAILURE
paramiko.sftp_server.MSG_CHANNEL_OPEN_FAILURE
paramiko.sftp_si.MSG_CHANNEL_OPEN_FAILURE
paramiko.transport.MSG_CHANNEL_OPEN_FAILURE
-paramiko.util.MSG_CHANNEL_OPEN_FAILURE" class="py-name" href="#" onclick="return doclink('link-542', 'MSG_CHANNEL_OPEN_FAILURE', 'link-542');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-543', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-544', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-545', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2001"></a><tt class="py-lineno">2001</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-546" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-546', 'add_string', 'link-142');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'en'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2002"></a><tt class="py-lineno">2002</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L2003"></a><tt class="py-lineno">2003</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L2004"></a><tt class="py-lineno">2004</tt> <tt class="py-line"> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt id="link-547" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-547', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="paramiko.SFTPClient.put
-paramiko.transport.ChannelMap.put" class="py-name" href="#" onclick="return doclink('link-548', 'put', 'link-153');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">[</tt><tt class="py-name">my_chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L2010"></a><tt class="py-lineno">2010</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_transport</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L2011"></a><tt class="py-lineno">2011</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_window</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_remote_channel</tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">initial_window_size</tt><tt class="py-op">,</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L2014"></a><tt class="py-lineno">2014</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2015"></a><tt class="py-lineno">2015</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-549" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-549', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2016"></a><tt class="py-lineno">2016</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-550', 'add_byte', 'link-140');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-551" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_OPEN_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.client.MSG_CHANNEL_OPEN_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.common.MSG_CHANNEL_OPEN_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.server.MSG_CHANNEL_OPEN_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_OPEN_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.util.MSG_CHANNEL_OPEN_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_OPEN_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.util.MSG_CHANNEL_OPEN_FAILURE" class="py-name" href="#" onclick="return doclink('link-567', 'MSG_CHANNEL_OPEN_FAILURE', 'link-567');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2031"></a><tt class="py-lineno">2031</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-568', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-569" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-569', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
+<a name="L2033"></a><tt class="py-lineno">2033</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-570', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2034"></a><tt class="py-lineno">2034</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-571', 'add_string', 'link-147');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'en'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2035"></a><tt class="py-lineno">2035</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L2037"></a><tt class="py-lineno">2037</tt> <tt class="py-line"> </tt>
+<a name="L2038"></a><tt class="py-lineno">2038</tt> <tt class="py-line"> <tt class="py-name">chan</tt> <tt class="py-op">=</tt> <tt id="link-572" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-572', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L2039"></a><tt class="py-lineno">2039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2040"></a><tt class="py-lineno">2040</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_channels</tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="paramiko.SFTPClient.put
+paramiko.transport.ChannelMap.put" class="py-name" href="#" onclick="return doclink('link-573', 'put', 'link-158');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">channels_seen</tt><tt class="py-op">[</tt><tt class="py-name">my_chanid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_transport</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_window</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">_set_remote_channel</tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">,</tt> <tt class="py-name">initial_window_size</tt><tt class="py-op">,</tt> <tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2048"></a><tt class="py-lineno">2048</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-574" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-574', 'Message', 'link-24');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2049"></a><tt class="py-lineno">2049</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-575', 'add_byte', 'link-145');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-576" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_OPEN_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.client.MSG_CHANNEL_OPEN_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.common.MSG_CHANNEL_OPEN_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.server.MSG_CHANNEL_OPEN_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_OPEN_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_OPEN_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_OPEN_SUCCESS,Variable paramiko.util.MSG_CHANNEL_OPEN_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_OPEN_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS
paramiko.channel.MSG_CHANNEL_OPEN_SUCCESS
paramiko.client.MSG_CHANNEL_OPEN_SUCCESS
paramiko.common.MSG_CHANNEL_OPEN_SUCCESS
@@ -3684,13 +3724,13 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN_SUCCESS
paramiko.sftp_server.MSG_CHANNEL_OPEN_SUCCESS
paramiko.sftp_si.MSG_CHANNEL_OPEN_SUCCESS
paramiko.transport.MSG_CHANNEL_OPEN_SUCCESS
-paramiko.util.MSG_CHANNEL_OPEN_SUCCESS" class="py-name" href="#" onclick="return doclink('link-551', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-551');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2017"></a><tt class="py-lineno">2017</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-552', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-553', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-554" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-554', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-555', 'add_int', 'link-143');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L2021"></a><tt class="py-lineno">2021</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
-<a name="L2022"></a><tt class="py-lineno">2022</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-556" class="py-name"><a title="paramiko.auth_handler.INFO
+paramiko.util.MSG_CHANNEL_OPEN_SUCCESS" class="py-name" href="#" onclick="return doclink('link-576', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-576');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2050"></a><tt class="py-lineno">2050</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-577', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L2051"></a><tt class="py-lineno">2051</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-578', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">my_chanid</tt><tt class="py-op">)</tt> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-579', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">window_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L2053"></a><tt class="py-lineno">2053</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-580', 'add_int', 'link-148');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">max_packet_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L2054"></a><tt class="py-lineno">2054</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_message</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-581" class="py-name"><a title="paramiko.auth_handler.INFO
paramiko.channel.INFO
paramiko.client.INFO
paramiko.common.INFO
@@ -3711,20 +3751,20 @@ paramiko.sftp_handle.INFO
paramiko.sftp_server.INFO
paramiko.sftp_si.INFO
paramiko.transport.INFO
-paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-556', 'INFO', 'link-347');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d (%s) opened.'</tt><tt class="py-op">,</tt> <tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
-<a name="L2023"></a><tt class="py-lineno">2023</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2024"></a><tt class="py-lineno">2024</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2026"></a><tt class="py-lineno">2026</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt> </tt>
-<a name="L2027"></a><tt class="py-lineno">2027</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">server_addr</tt><tt class="py-op">,</tt> <tt class="py-name">server_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L2029"></a><tt class="py-lineno">2029</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2030"></a><tt class="py-lineno">2030</tt> <tt class="py-line"> </tt>
-<a name="Transport._parse_debug"></a><div id="Transport._parse_debug-def"><a name="L2031"></a><tt class="py-lineno">2031</tt> <a class="py-toggle" href="#" id="Transport._parse_debug-toggle" onclick="return toggle('Transport._parse_debug');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_debug">_parse_debug</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._parse_debug-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_debug-expanded"><a name="L2032"></a><tt class="py-lineno">2032</tt> <tt class="py-line"> <tt class="py-name">always_display</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-557', 'get_boolean', 'link-399');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2033"></a><tt class="py-lineno">2033</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-558', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt> <tt class="py-line"> <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-559', 'get_string', 'link-477');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2035"></a><tt class="py-lineno">2035</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-560" class="py-name"><a title="paramiko.auth_handler.DEBUG
+paramiko.util.INFO" class="py-name" href="#" onclick="return doclink('link-581', 'INFO', 'link-372');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Secsh channel %d (%s) opened.'</tt><tt class="py-op">,</tt> <tt class="py-name">my_chanid</tt><tt class="py-op">,</tt> <tt class="py-name">kind</tt><tt class="py-op">)</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'x11'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_x11_handler</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2058"></a><tt class="py-lineno">2058</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt class="py-string">'forwarded-tcpip'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt> <tt class="py-line"> <tt class="py-name">chan</tt><tt class="py-op">.</tt><tt class="py-name">origin_addr</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt> </tt>
+<a name="L2060"></a><tt class="py-lineno">2060</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tcp_handler</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">origin_addr</tt><tt class="py-op">,</tt> <tt class="py-name">origin_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">server_addr</tt><tt class="py-op">,</tt> <tt class="py-name">server_port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2061"></a><tt class="py-lineno">2061</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_queue_incoming_channel</tt><tt class="py-op">(</tt><tt class="py-name">chan</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2063"></a><tt class="py-lineno">2063</tt> <tt class="py-line"> </tt>
+<a name="Transport._parse_debug"></a><div id="Transport._parse_debug-def"><a name="L2064"></a><tt class="py-lineno">2064</tt> <a class="py-toggle" href="#" id="Transport._parse_debug-toggle" onclick="return toggle('Transport._parse_debug');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_parse_debug">_parse_debug</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._parse_debug-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._parse_debug-expanded"><a name="L2065"></a><tt class="py-lineno">2065</tt> <tt class="py-line"> <tt class="py-name">always_display</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-582', 'get_boolean', 'link-424');">get_boolean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2066"></a><tt class="py-lineno">2066</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-583', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2067"></a><tt class="py-lineno">2067</tt> <tt class="py-line"> <tt class="py-name">lang</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-584', 'get_string', 'link-502');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-585" class="py-name"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -3745,21 +3785,21 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-560', 'DEBUG', 'link-187');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Debug msg: '</tt> <tt class="py-op">+</tt> <tt id="link-561" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-561', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-562" class="py-name" targets="Function paramiko.util.safe_string()=paramiko.util-module.html#safe_string"><a title="paramiko.util.safe_string" class="py-name" href="#" onclick="return doclink('link-562', 'safe_string', 'link-562');">safe_string</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2036"></a><tt class="py-lineno">2036</tt> <tt class="py-line"> </tt>
-<a name="Transport._get_subsystem_handler"></a><div id="Transport._get_subsystem_handler-def"><a name="L2037"></a><tt class="py-lineno">2037</tt> <a class="py-toggle" href="#" id="Transport._get_subsystem_handler-toggle" onclick="return toggle('Transport._get_subsystem_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_subsystem_handler">_get_subsystem_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Transport._get_subsystem_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_subsystem_handler-expanded"><a name="L2038"></a><tt class="py-lineno">2038</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2040"></a><tt class="py-lineno">2040</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-563" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-563', 'name', 'link-56');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">:</tt> </tt>
-<a name="L2041"></a><tt class="py-lineno">2041</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2042"></a><tt class="py-lineno">2042</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">[</tt><tt id="link-564" class="py-name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-564', 'name', 'link-56');">name</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2045"></a><tt class="py-lineno">2045</tt> <tt class="py-line"> </tt>
-<a name="L2046"></a><tt class="py-lineno">2046</tt> <tt class="py-line"> <tt id="link-565" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-565', '_handler_table', 'link-296');">_handler_table</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt> <tt class="py-line"> <tt id="link-566" class="py-name"><a title="paramiko.auth_handler.MSG_NEWKEYS
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-585', 'DEBUG', 'link-192');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Debug msg: '</tt> <tt class="py-op">+</tt> <tt id="link-586" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-586', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-587" class="py-name" targets="Function paramiko.util.safe_string()=paramiko.util-module.html#safe_string"><a title="paramiko.util.safe_string" class="py-name" href="#" onclick="return doclink('link-587', 'safe_string', 'link-587');">safe_string</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2069"></a><tt class="py-lineno">2069</tt> <tt class="py-line"> </tt>
+<a name="Transport._get_subsystem_handler"></a><div id="Transport._get_subsystem_handler-def"><a name="L2070"></a><tt class="py-lineno">2070</tt> <a class="py-toggle" href="#" id="Transport._get_subsystem_handler-toggle" onclick="return toggle('Transport._get_subsystem_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.transport.Transport-class.html#_get_subsystem_handler">_get_subsystem_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Transport._get_subsystem_handler-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Transport._get_subsystem_handler-expanded"><a name="L2071"></a><tt class="py-lineno">2071</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-588" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-588', 'name', 'link-60');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">:</tt> </tt>
+<a name="L2074"></a><tt class="py-lineno">2074</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2075"></a><tt class="py-lineno">2075</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subsystem_table</tt><tt class="py-op">[</tt><tt id="link-589" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-589', 'name', 'link-60');">name</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L2077"></a><tt class="py-lineno">2077</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2078"></a><tt class="py-lineno">2078</tt> <tt class="py-line"> </tt>
+<a name="L2079"></a><tt class="py-lineno">2079</tt> <tt class="py-line"> <tt id="link-590" class="py-name"><a title="paramiko.Transport._handler_table" class="py-name" href="#" onclick="return doclink('link-590', '_handler_table', 'link-321');">_handler_table</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2080"></a><tt class="py-lineno">2080</tt> <tt class="py-line"> <tt id="link-591" class="py-name"><a title="paramiko.auth_handler.MSG_NEWKEYS
paramiko.channel.MSG_NEWKEYS
paramiko.client.MSG_NEWKEYS
paramiko.common.MSG_NEWKEYS
@@ -3779,8 +3819,8 @@ paramiko.sftp_handle.MSG_NEWKEYS
paramiko.sftp_server.MSG_NEWKEYS
paramiko.sftp_si.MSG_NEWKEYS
paramiko.transport.MSG_NEWKEYS
-paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-566', 'MSG_NEWKEYS', 'link-458');">MSG_NEWKEYS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_newkeys</tt><tt class="py-op">,</tt> </tt>
-<a name="L2048"></a><tt class="py-lineno">2048</tt> <tt class="py-line"> <tt id="link-567" class="py-name"><a title="paramiko.auth_handler.MSG_GLOBAL_REQUEST
+paramiko.util.MSG_NEWKEYS" class="py-name" href="#" onclick="return doclink('link-591', 'MSG_NEWKEYS', 'link-483');">MSG_NEWKEYS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_newkeys</tt><tt class="py-op">,</tt> </tt>
+<a name="L2081"></a><tt class="py-lineno">2081</tt> <tt class="py-line"> <tt id="link-592" class="py-name"><a title="paramiko.auth_handler.MSG_GLOBAL_REQUEST
paramiko.channel.MSG_GLOBAL_REQUEST
paramiko.client.MSG_GLOBAL_REQUEST
paramiko.common.MSG_GLOBAL_REQUEST
@@ -3800,8 +3840,8 @@ paramiko.sftp_handle.MSG_GLOBAL_REQUEST
paramiko.sftp_server.MSG_GLOBAL_REQUEST
paramiko.sftp_si.MSG_GLOBAL_REQUEST
paramiko.transport.MSG_GLOBAL_REQUEST
-paramiko.util.MSG_GLOBAL_REQUEST" class="py-name" href="#" onclick="return doclink('link-567', 'MSG_GLOBAL_REQUEST', 'link-183');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_global_request</tt><tt class="py-op">,</tt> </tt>
-<a name="L2049"></a><tt class="py-lineno">2049</tt> <tt class="py-line"> <tt id="link-568" class="py-name"><a title="paramiko.auth_handler.MSG_REQUEST_SUCCESS
+paramiko.util.MSG_GLOBAL_REQUEST" class="py-name" href="#" onclick="return doclink('link-592', 'MSG_GLOBAL_REQUEST', 'link-188');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_global_request</tt><tt class="py-op">,</tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt> <tt class="py-line"> <tt id="link-593" class="py-name"><a title="paramiko.auth_handler.MSG_REQUEST_SUCCESS
paramiko.channel.MSG_REQUEST_SUCCESS
paramiko.client.MSG_REQUEST_SUCCESS
paramiko.common.MSG_REQUEST_SUCCESS
@@ -3821,8 +3861,8 @@ paramiko.sftp_handle.MSG_REQUEST_SUCCESS
paramiko.sftp_server.MSG_REQUEST_SUCCESS
paramiko.sftp_si.MSG_REQUEST_SUCCESS
paramiko.transport.MSG_REQUEST_SUCCESS
-paramiko.util.MSG_REQUEST_SUCCESS" class="py-name" href="#" onclick="return doclink('link-568', 'MSG_REQUEST_SUCCESS', 'link-492');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_request_success</tt><tt class="py-op">,</tt> </tt>
-<a name="L2050"></a><tt class="py-lineno">2050</tt> <tt class="py-line"> <tt id="link-569" class="py-name"><a title="paramiko.auth_handler.MSG_REQUEST_FAILURE
+paramiko.util.MSG_REQUEST_SUCCESS" class="py-name" href="#" onclick="return doclink('link-593', 'MSG_REQUEST_SUCCESS', 'link-517');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_request_success</tt><tt class="py-op">,</tt> </tt>
+<a name="L2083"></a><tt class="py-lineno">2083</tt> <tt class="py-line"> <tt id="link-594" class="py-name"><a title="paramiko.auth_handler.MSG_REQUEST_FAILURE
paramiko.channel.MSG_REQUEST_FAILURE
paramiko.client.MSG_REQUEST_FAILURE
paramiko.common.MSG_REQUEST_FAILURE
@@ -3842,8 +3882,8 @@ paramiko.sftp_handle.MSG_REQUEST_FAILURE
paramiko.sftp_server.MSG_REQUEST_FAILURE
paramiko.sftp_si.MSG_REQUEST_FAILURE
paramiko.transport.MSG_REQUEST_FAILURE
-paramiko.util.MSG_REQUEST_FAILURE" class="py-name" href="#" onclick="return doclink('link-569', 'MSG_REQUEST_FAILURE', 'link-495');">MSG_REQUEST_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_request_failure</tt><tt class="py-op">,</tt> </tt>
-<a name="L2051"></a><tt class="py-lineno">2051</tt> <tt class="py-line"> <tt id="link-570" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.util.MSG_REQUEST_FAILURE" class="py-name" href="#" onclick="return doclink('link-594', 'MSG_REQUEST_FAILURE', 'link-520');">MSG_REQUEST_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_request_failure</tt><tt class="py-op">,</tt> </tt>
+<a name="L2084"></a><tt class="py-lineno">2084</tt> <tt class="py-line"> <tt id="link-595" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_SUCCESS
paramiko.channel.MSG_CHANNEL_OPEN_SUCCESS
paramiko.client.MSG_CHANNEL_OPEN_SUCCESS
paramiko.common.MSG_CHANNEL_OPEN_SUCCESS
@@ -3863,8 +3903,8 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN_SUCCESS
paramiko.sftp_server.MSG_CHANNEL_OPEN_SUCCESS
paramiko.sftp_si.MSG_CHANNEL_OPEN_SUCCESS
paramiko.transport.MSG_CHANNEL_OPEN_SUCCESS
-paramiko.util.MSG_CHANNEL_OPEN_SUCCESS" class="py-name" href="#" onclick="return doclink('link-570', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-551');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open_success</tt><tt class="py-op">,</tt> </tt>
-<a name="L2052"></a><tt class="py-lineno">2052</tt> <tt class="py-line"> <tt id="link-571" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE
+paramiko.util.MSG_CHANNEL_OPEN_SUCCESS" class="py-name" href="#" onclick="return doclink('link-595', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-576');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open_success</tt><tt class="py-op">,</tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt> <tt class="py-line"> <tt id="link-596" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE
paramiko.channel.MSG_CHANNEL_OPEN_FAILURE
paramiko.client.MSG_CHANNEL_OPEN_FAILURE
paramiko.common.MSG_CHANNEL_OPEN_FAILURE
@@ -3884,8 +3924,8 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN_FAILURE
paramiko.sftp_server.MSG_CHANNEL_OPEN_FAILURE
paramiko.sftp_si.MSG_CHANNEL_OPEN_FAILURE
paramiko.transport.MSG_CHANNEL_OPEN_FAILURE
-paramiko.util.MSG_CHANNEL_OPEN_FAILURE" class="py-name" href="#" onclick="return doclink('link-571', 'MSG_CHANNEL_OPEN_FAILURE', 'link-542');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open_failure</tt><tt class="py-op">,</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt> <tt class="py-line"> <tt id="link-572" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN
+paramiko.util.MSG_CHANNEL_OPEN_FAILURE" class="py-name" href="#" onclick="return doclink('link-596', 'MSG_CHANNEL_OPEN_FAILURE', 'link-567');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open_failure</tt><tt class="py-op">,</tt> </tt>
+<a name="L2086"></a><tt class="py-lineno">2086</tt> <tt class="py-line"> <tt id="link-597" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_OPEN
paramiko.channel.MSG_CHANNEL_OPEN
paramiko.client.MSG_CHANNEL_OPEN
paramiko.common.MSG_CHANNEL_OPEN
@@ -3905,8 +3945,8 @@ paramiko.sftp_handle.MSG_CHANNEL_OPEN
paramiko.sftp_server.MSG_CHANNEL_OPEN
paramiko.sftp_si.MSG_CHANNEL_OPEN
paramiko.transport.MSG_CHANNEL_OPEN
-paramiko.util.MSG_CHANNEL_OPEN" class="py-name" href="#" onclick="return doclink('link-572', 'MSG_CHANNEL_OPEN', 'link-141');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open</tt><tt class="py-op">,</tt> </tt>
-<a name="L2054"></a><tt class="py-lineno">2054</tt> <tt class="py-line"> <tt id="link-573" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
+paramiko.util.MSG_CHANNEL_OPEN" class="py-name" href="#" onclick="return doclink('link-597', 'MSG_CHANNEL_OPEN', 'link-146');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_channel_open</tt><tt class="py-op">,</tt> </tt>
+<a name="L2087"></a><tt class="py-lineno">2087</tt> <tt class="py-line"> <tt id="link-598" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
paramiko.channel.MSG_KEXINIT
paramiko.client.MSG_KEXINIT
paramiko.common.MSG_KEXINIT
@@ -3926,11 +3966,11 @@ paramiko.sftp_handle.MSG_KEXINIT
paramiko.sftp_server.MSG_KEXINIT
paramiko.sftp_si.MSG_KEXINIT
paramiko.transport.MSG_KEXINIT
-paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-573', 'MSG_KEXINIT', 'link-288');">MSG_KEXINIT</a></tt><tt class="py-op">:</tt> <tt class="py-name">_negotiate_keys</tt><tt class="py-op">,</tt> </tt>
-<a name="L2055"></a><tt class="py-lineno">2055</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L2056"></a><tt class="py-lineno">2056</tt> <tt class="py-line"> </tt>
-<a name="L2057"></a><tt class="py-lineno">2057</tt> <tt class="py-line"> <tt id="link-574" class="py-name"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-574', '_channel_handler_table', 'link-298');">_channel_handler_table</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2058"></a><tt class="py-lineno">2058</tt> <tt class="py-line"> <tt id="link-575" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.client.MSG_CHANNEL_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.common.MSG_CHANNEL_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.server.MSG_CHANNEL_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.util.MSG_CHANNEL_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_SUCCESS
+paramiko.util.MSG_KEXINIT" class="py-name" href="#" onclick="return doclink('link-598', 'MSG_KEXINIT', 'link-313');">MSG_KEXINIT</a></tt><tt class="py-op">:</tt> <tt class="py-name">_negotiate_keys</tt><tt class="py-op">,</tt> </tt>
+<a name="L2088"></a><tt class="py-lineno">2088</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L2089"></a><tt class="py-lineno">2089</tt> <tt class="py-line"> </tt>
+<a name="L2090"></a><tt class="py-lineno">2090</tt> <tt class="py-line"> <tt id="link-599" class="py-name"><a title="paramiko.Transport._channel_handler_table" class="py-name" href="#" onclick="return doclink('link-599', '_channel_handler_table', 'link-323');">_channel_handler_table</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt> <tt class="py-line"> <tt id="link-600" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_SUCCESS=paramiko.auth_handler-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.channel.MSG_CHANNEL_SUCCESS=paramiko.channel-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.client.MSG_CHANNEL_SUCCESS=paramiko.client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.common.MSG_CHANNEL_SUCCESS=paramiko.common-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.dsskey.MSG_CHANNEL_SUCCESS=paramiko.dsskey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.hostkeys.MSG_CHANNEL_SUCCESS=paramiko.hostkeys-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_gex.MSG_CHANNEL_SUCCESS=paramiko.kex_gex-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.kex_group1.MSG_CHANNEL_SUCCESS=paramiko.kex_group1-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.packet.MSG_CHANNEL_SUCCESS=paramiko.packet-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.pkey.MSG_CHANNEL_SUCCESS=paramiko.pkey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.rsakey.MSG_CHANNEL_SUCCESS=paramiko.rsakey-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.server.MSG_CHANNEL_SUCCESS=paramiko.server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp.MSG_CHANNEL_SUCCESS=paramiko.sftp-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_attr.MSG_CHANNEL_SUCCESS=paramiko.sftp_attr-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_client.MSG_CHANNEL_SUCCESS=paramiko.sftp_client-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_file.MSG_CHANNEL_SUCCESS=paramiko.sftp_file-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_handle.MSG_CHANNEL_SUCCESS=paramiko.sftp_handle-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_server.MSG_CHANNEL_SUCCESS=paramiko.sftp_server-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.sftp_si.MSG_CHANNEL_SUCCESS=paramiko.sftp_si-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.transport.MSG_CHANNEL_SUCCESS=paramiko.transport-module.html#MSG_CHANNEL_SUCCESS,Variable paramiko.util.MSG_CHANNEL_SUCCESS=paramiko.util-module.html#MSG_CHANNEL_SUCCESS"><a title="paramiko.auth_handler.MSG_CHANNEL_SUCCESS
paramiko.channel.MSG_CHANNEL_SUCCESS
paramiko.client.MSG_CHANNEL_SUCCESS
paramiko.common.MSG_CHANNEL_SUCCESS
@@ -3950,8 +3990,8 @@ paramiko.sftp_handle.MSG_CHANNEL_SUCCESS
paramiko.sftp_server.MSG_CHANNEL_SUCCESS
paramiko.sftp_si.MSG_CHANNEL_SUCCESS
paramiko.transport.MSG_CHANNEL_SUCCESS
-paramiko.util.MSG_CHANNEL_SUCCESS" class="py-name" href="#" onclick="return doclink('link-575', 'MSG_CHANNEL_SUCCESS', 'link-575');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">:</tt> <tt id="link-576" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-576', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_request_success</tt><tt class="py-op">,</tt> </tt>
-<a name="L2059"></a><tt class="py-lineno">2059</tt> <tt class="py-line"> <tt id="link-577" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.channel.MSG_CHANNEL_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.client.MSG_CHANNEL_FAILURE=paramiko.client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.common.MSG_CHANNEL_FAILURE=paramiko.common-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.packet.MSG_CHANNEL_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.server.MSG_CHANNEL_FAILURE=paramiko.server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.transport.MSG_CHANNEL_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.util.MSG_CHANNEL_FAILURE=paramiko.util-module.html#MSG_CHANNEL_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_FAILURE
+paramiko.util.MSG_CHANNEL_SUCCESS" class="py-name" href="#" onclick="return doclink('link-600', 'MSG_CHANNEL_SUCCESS', 'link-600');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">:</tt> <tt id="link-601" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-601', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_request_success</tt><tt class="py-op">,</tt> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt> <tt class="py-line"> <tt id="link-602" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_FAILURE=paramiko.auth_handler-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.channel.MSG_CHANNEL_FAILURE=paramiko.channel-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.client.MSG_CHANNEL_FAILURE=paramiko.client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.common.MSG_CHANNEL_FAILURE=paramiko.common-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.dsskey.MSG_CHANNEL_FAILURE=paramiko.dsskey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.hostkeys.MSG_CHANNEL_FAILURE=paramiko.hostkeys-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_gex.MSG_CHANNEL_FAILURE=paramiko.kex_gex-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.kex_group1.MSG_CHANNEL_FAILURE=paramiko.kex_group1-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.packet.MSG_CHANNEL_FAILURE=paramiko.packet-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.pkey.MSG_CHANNEL_FAILURE=paramiko.pkey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.rsakey.MSG_CHANNEL_FAILURE=paramiko.rsakey-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.server.MSG_CHANNEL_FAILURE=paramiko.server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp.MSG_CHANNEL_FAILURE=paramiko.sftp-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_attr.MSG_CHANNEL_FAILURE=paramiko.sftp_attr-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_client.MSG_CHANNEL_FAILURE=paramiko.sftp_client-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_file.MSG_CHANNEL_FAILURE=paramiko.sftp_file-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_handle.MSG_CHANNEL_FAILURE=paramiko.sftp_handle-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_server.MSG_CHANNEL_FAILURE=paramiko.sftp_server-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.sftp_si.MSG_CHANNEL_FAILURE=paramiko.sftp_si-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.transport.MSG_CHANNEL_FAILURE=paramiko.transport-module.html#MSG_CHANNEL_FAILURE,Variable paramiko.util.MSG_CHANNEL_FAILURE=paramiko.util-module.html#MSG_CHANNEL_FAILURE"><a title="paramiko.auth_handler.MSG_CHANNEL_FAILURE
paramiko.channel.MSG_CHANNEL_FAILURE
paramiko.client.MSG_CHANNEL_FAILURE
paramiko.common.MSG_CHANNEL_FAILURE
@@ -3971,8 +4011,8 @@ paramiko.sftp_handle.MSG_CHANNEL_FAILURE
paramiko.sftp_server.MSG_CHANNEL_FAILURE
paramiko.sftp_si.MSG_CHANNEL_FAILURE
paramiko.transport.MSG_CHANNEL_FAILURE
-paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return doclink('link-577', 'MSG_CHANNEL_FAILURE', 'link-577');">MSG_CHANNEL_FAILURE</a></tt><tt class="py-op">:</tt> <tt id="link-578" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-578', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_request_failed</tt><tt class="py-op">,</tt> </tt>
-<a name="L2060"></a><tt class="py-lineno">2060</tt> <tt class="py-line"> <tt id="link-579" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_DATA,Variable paramiko.channel.MSG_CHANNEL_DATA=paramiko.channel-module.html#MSG_CHANNEL_DATA,Variable paramiko.client.MSG_CHANNEL_DATA=paramiko.client-module.html#MSG_CHANNEL_DATA,Variable paramiko.common.MSG_CHANNEL_DATA=paramiko.common-module.html#MSG_CHANNEL_DATA,Variable paramiko.dsskey.MSG_CHANNEL_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_DATA,Variable paramiko.packet.MSG_CHANNEL_DATA=paramiko.packet-module.html#MSG_CHANNEL_DATA,Variable paramiko.pkey.MSG_CHANNEL_DATA=paramiko.pkey-module.html#MSG_CHANNEL_DATA,Variable paramiko.rsakey.MSG_CHANNEL_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_DATA,Variable paramiko.server.MSG_CHANNEL_DATA=paramiko.server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp.MSG_CHANNEL_DATA=paramiko.sftp-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_DATA,Variable paramiko.transport.MSG_CHANNEL_DATA=paramiko.transport-module.html#MSG_CHANNEL_DATA,Variable paramiko.util.MSG_CHANNEL_DATA=paramiko.util-module.html#MSG_CHANNEL_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_DATA
+paramiko.util.MSG_CHANNEL_FAILURE" class="py-name" href="#" onclick="return doclink('link-602', 'MSG_CHANNEL_FAILURE', 'link-602');">MSG_CHANNEL_FAILURE</a></tt><tt class="py-op">:</tt> <tt id="link-603" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-603', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_request_failed</tt><tt class="py-op">,</tt> </tt>
+<a name="L2093"></a><tt class="py-lineno">2093</tt> <tt class="py-line"> <tt id="link-604" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_DATA,Variable paramiko.channel.MSG_CHANNEL_DATA=paramiko.channel-module.html#MSG_CHANNEL_DATA,Variable paramiko.client.MSG_CHANNEL_DATA=paramiko.client-module.html#MSG_CHANNEL_DATA,Variable paramiko.common.MSG_CHANNEL_DATA=paramiko.common-module.html#MSG_CHANNEL_DATA,Variable paramiko.dsskey.MSG_CHANNEL_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_DATA,Variable paramiko.packet.MSG_CHANNEL_DATA=paramiko.packet-module.html#MSG_CHANNEL_DATA,Variable paramiko.pkey.MSG_CHANNEL_DATA=paramiko.pkey-module.html#MSG_CHANNEL_DATA,Variable paramiko.rsakey.MSG_CHANNEL_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_DATA,Variable paramiko.server.MSG_CHANNEL_DATA=paramiko.server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp.MSG_CHANNEL_DATA=paramiko.sftp-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_DATA,Variable paramiko.transport.MSG_CHANNEL_DATA=paramiko.transport-module.html#MSG_CHANNEL_DATA,Variable paramiko.util.MSG_CHANNEL_DATA=paramiko.util-module.html#MSG_CHANNEL_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_DATA
paramiko.channel.MSG_CHANNEL_DATA
paramiko.client.MSG_CHANNEL_DATA
paramiko.common.MSG_CHANNEL_DATA
@@ -3992,8 +4032,8 @@ paramiko.sftp_handle.MSG_CHANNEL_DATA
paramiko.sftp_server.MSG_CHANNEL_DATA
paramiko.sftp_si.MSG_CHANNEL_DATA
paramiko.transport.MSG_CHANNEL_DATA
-paramiko.util.MSG_CHANNEL_DATA" class="py-name" href="#" onclick="return doclink('link-579', 'MSG_CHANNEL_DATA', 'link-579');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">:</tt> <tt id="link-580" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-580', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_feed</tt><tt class="py-op">,</tt> </tt>
-<a name="L2061"></a><tt class="py-lineno">2061</tt> <tt class="py-line"> <tt id="link-581" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.channel.MSG_CHANNEL_EXTENDED_DATA=paramiko.channel-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.client.MSG_CHANNEL_EXTENDED_DATA=paramiko.client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.common.MSG_CHANNEL_EXTENDED_DATA=paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.packet.MSG_CHANNEL_EXTENDED_DATA=paramiko.packet-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA=paramiko.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.server.MSG_CHANNEL_EXTENDED_DATA=paramiko.server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.transport.MSG_CHANNEL_EXTENDED_DATA=paramiko.transport-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.util.MSG_CHANNEL_EXTENDED_DATA=paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA
+paramiko.util.MSG_CHANNEL_DATA" class="py-name" href="#" onclick="return doclink('link-604', 'MSG_CHANNEL_DATA', 'link-604');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">:</tt> <tt id="link-605" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-605', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_feed</tt><tt class="py-op">,</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt> <tt class="py-line"> <tt id="link-606" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA=paramiko.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.channel.MSG_CHANNEL_EXTENDED_DATA=paramiko.channel-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.client.MSG_CHANNEL_EXTENDED_DATA=paramiko.client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.common.MSG_CHANNEL_EXTENDED_DATA=paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA=paramiko.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA=paramiko.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA=paramiko.kex_group1-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.packet.MSG_CHANNEL_EXTENDED_DATA=paramiko.packet-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA=paramiko.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA=paramiko.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.server.MSG_CHANNEL_EXTENDED_DATA=paramiko.server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_attr-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_client-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_file-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_handle-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_server-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA=paramiko.sftp_si-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.transport.MSG_CHANNEL_EXTENDED_DATA=paramiko.transport-module.html#MSG_CHANNEL_EXTENDED_DATA,Variable paramiko.util.MSG_CHANNEL_EXTENDED_DATA=paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"><a title="paramiko.auth_handler.MSG_CHANNEL_EXTENDED_DATA
paramiko.channel.MSG_CHANNEL_EXTENDED_DATA
paramiko.client.MSG_CHANNEL_EXTENDED_DATA
paramiko.common.MSG_CHANNEL_EXTENDED_DATA
@@ -4013,8 +4053,8 @@ paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA
paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA
paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA
paramiko.transport.MSG_CHANNEL_EXTENDED_DATA
-paramiko.util.MSG_CHANNEL_EXTENDED_DATA" class="py-name" href="#" onclick="return doclink('link-581', 'MSG_CHANNEL_EXTENDED_DATA', 'link-581');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">:</tt> <tt id="link-582" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-582', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_feed_extended</tt><tt class="py-op">,</tt> </tt>
-<a name="L2062"></a><tt class="py-lineno">2062</tt> <tt class="py-line"> <tt id="link-583" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST=paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST=paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.common.MSG_CHANNEL_WINDOW_ADJUST=paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.dsskey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST=paramiko.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST=paramiko.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.pkey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST=paramiko.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.util.MSG_CHANNEL_WINDOW_ADJUST=paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.util.MSG_CHANNEL_EXTENDED_DATA" class="py-name" href="#" onclick="return doclink('link-606', 'MSG_CHANNEL_EXTENDED_DATA', 'link-606');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">:</tt> <tt id="link-607" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-607', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_feed_extended</tt><tt class="py-op">,</tt> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt> <tt class="py-line"> <tt id="link-608" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST=paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST=paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.common.MSG_CHANNEL_WINDOW_ADJUST=paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.dsskey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST=paramiko.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST=paramiko.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST=paramiko.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.pkey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST=paramiko.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST=paramiko.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST=paramiko.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST,Variable paramiko.util.MSG_CHANNEL_WINDOW_ADJUST=paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"><a title="paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST
paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST
paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
@@ -4034,8 +4074,8 @@ paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST
paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST
paramiko.transport.MSG_CHANNEL_WINDOW_ADJUST
-paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-583', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-583');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">:</tt> <tt id="link-584" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-584', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_window_adjust</tt><tt class="py-op">,</tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt> <tt class="py-line"> <tt id="link-585" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_REQUEST=paramiko.auth_handler-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.channel.MSG_CHANNEL_REQUEST=paramiko.channel-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.client.MSG_CHANNEL_REQUEST=paramiko.client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.common.MSG_CHANNEL_REQUEST=paramiko.common-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.dsskey.MSG_CHANNEL_REQUEST=paramiko.dsskey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.hostkeys.MSG_CHANNEL_REQUEST=paramiko.hostkeys-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_gex.MSG_CHANNEL_REQUEST=paramiko.kex_gex-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_group1.MSG_CHANNEL_REQUEST=paramiko.kex_group1-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.packet.MSG_CHANNEL_REQUEST=paramiko.packet-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.pkey.MSG_CHANNEL_REQUEST=paramiko.pkey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.rsakey.MSG_CHANNEL_REQUEST=paramiko.rsakey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.server.MSG_CHANNEL_REQUEST=paramiko.server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp.MSG_CHANNEL_REQUEST=paramiko.sftp-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_attr.MSG_CHANNEL_REQUEST=paramiko.sftp_attr-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_client.MSG_CHANNEL_REQUEST=paramiko.sftp_client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_file.MSG_CHANNEL_REQUEST=paramiko.sftp_file-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_handle.MSG_CHANNEL_REQUEST=paramiko.sftp_handle-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_server.MSG_CHANNEL_REQUEST=paramiko.sftp_server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_si.MSG_CHANNEL_REQUEST=paramiko.sftp_si-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.transport.MSG_CHANNEL_REQUEST=paramiko.transport-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.util.MSG_CHANNEL_REQUEST=paramiko.util-module.html#MSG_CHANNEL_REQUEST"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
+paramiko.util.MSG_CHANNEL_WINDOW_ADJUST" class="py-name" href="#" onclick="return doclink('link-608', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-608');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">:</tt> <tt id="link-609" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-609', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_window_adjust</tt><tt class="py-op">,</tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt> <tt class="py-line"> <tt id="link-610" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_REQUEST=paramiko.auth_handler-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.channel.MSG_CHANNEL_REQUEST=paramiko.channel-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.client.MSG_CHANNEL_REQUEST=paramiko.client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.common.MSG_CHANNEL_REQUEST=paramiko.common-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.dsskey.MSG_CHANNEL_REQUEST=paramiko.dsskey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.hostkeys.MSG_CHANNEL_REQUEST=paramiko.hostkeys-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_gex.MSG_CHANNEL_REQUEST=paramiko.kex_gex-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.kex_group1.MSG_CHANNEL_REQUEST=paramiko.kex_group1-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.packet.MSG_CHANNEL_REQUEST=paramiko.packet-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.pkey.MSG_CHANNEL_REQUEST=paramiko.pkey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.rsakey.MSG_CHANNEL_REQUEST=paramiko.rsakey-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.server.MSG_CHANNEL_REQUEST=paramiko.server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp.MSG_CHANNEL_REQUEST=paramiko.sftp-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_attr.MSG_CHANNEL_REQUEST=paramiko.sftp_attr-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_client.MSG_CHANNEL_REQUEST=paramiko.sftp_client-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_file.MSG_CHANNEL_REQUEST=paramiko.sftp_file-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_handle.MSG_CHANNEL_REQUEST=paramiko.sftp_handle-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_server.MSG_CHANNEL_REQUEST=paramiko.sftp_server-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.sftp_si.MSG_CHANNEL_REQUEST=paramiko.sftp_si-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.transport.MSG_CHANNEL_REQUEST=paramiko.transport-module.html#MSG_CHANNEL_REQUEST,Variable paramiko.util.MSG_CHANNEL_REQUEST=paramiko.util-module.html#MSG_CHANNEL_REQUEST"><a title="paramiko.auth_handler.MSG_CHANNEL_REQUEST
paramiko.channel.MSG_CHANNEL_REQUEST
paramiko.client.MSG_CHANNEL_REQUEST
paramiko.common.MSG_CHANNEL_REQUEST
@@ -4055,8 +4095,8 @@ paramiko.sftp_handle.MSG_CHANNEL_REQUEST
paramiko.sftp_server.MSG_CHANNEL_REQUEST
paramiko.sftp_si.MSG_CHANNEL_REQUEST
paramiko.transport.MSG_CHANNEL_REQUEST
-paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-585', 'MSG_CHANNEL_REQUEST', 'link-585');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">:</tt> <tt id="link-586" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-586', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_request</tt><tt class="py-op">,</tt> </tt>
-<a name="L2064"></a><tt class="py-lineno">2064</tt> <tt class="py-line"> <tt id="link-587" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EOF=paramiko.auth_handler-module.html#MSG_CHANNEL_EOF,Variable paramiko.channel.MSG_CHANNEL_EOF=paramiko.channel-module.html#MSG_CHANNEL_EOF,Variable paramiko.client.MSG_CHANNEL_EOF=paramiko.client-module.html#MSG_CHANNEL_EOF,Variable paramiko.common.MSG_CHANNEL_EOF=paramiko.common-module.html#MSG_CHANNEL_EOF,Variable paramiko.dsskey.MSG_CHANNEL_EOF=paramiko.dsskey-module.html#MSG_CHANNEL_EOF,Variable paramiko.hostkeys.MSG_CHANNEL_EOF=paramiko.hostkeys-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_gex.MSG_CHANNEL_EOF=paramiko.kex_gex-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_group1.MSG_CHANNEL_EOF=paramiko.kex_group1-module.html#MSG_CHANNEL_EOF,Variable paramiko.packet.MSG_CHANNEL_EOF=paramiko.packet-module.html#MSG_CHANNEL_EOF,Variable paramiko.pkey.MSG_CHANNEL_EOF=paramiko.pkey-module.html#MSG_CHANNEL_EOF,Variable paramiko.rsakey.MSG_CHANNEL_EOF=paramiko.rsakey-module.html#MSG_CHANNEL_EOF,Variable paramiko.server.MSG_CHANNEL_EOF=paramiko.server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp.MSG_CHANNEL_EOF=paramiko.sftp-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_attr.MSG_CHANNEL_EOF=paramiko.sftp_attr-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_client.MSG_CHANNEL_EOF=paramiko.sftp_client-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_file.MSG_CHANNEL_EOF=paramiko.sftp_file-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_handle.MSG_CHANNEL_EOF=paramiko.sftp_handle-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_server.MSG_CHANNEL_EOF=paramiko.sftp_server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_si.MSG_CHANNEL_EOF=paramiko.sftp_si-module.html#MSG_CHANNEL_EOF,Variable paramiko.transport.MSG_CHANNEL_EOF=paramiko.transport-module.html#MSG_CHANNEL_EOF,Variable paramiko.util.MSG_CHANNEL_EOF=paramiko.util-module.html#MSG_CHANNEL_EOF"><a title="paramiko.auth_handler.MSG_CHANNEL_EOF
+paramiko.util.MSG_CHANNEL_REQUEST" class="py-name" href="#" onclick="return doclink('link-610', 'MSG_CHANNEL_REQUEST', 'link-610');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">:</tt> <tt id="link-611" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-611', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_request</tt><tt class="py-op">,</tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt> <tt class="py-line"> <tt id="link-612" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_EOF=paramiko.auth_handler-module.html#MSG_CHANNEL_EOF,Variable paramiko.channel.MSG_CHANNEL_EOF=paramiko.channel-module.html#MSG_CHANNEL_EOF,Variable paramiko.client.MSG_CHANNEL_EOF=paramiko.client-module.html#MSG_CHANNEL_EOF,Variable paramiko.common.MSG_CHANNEL_EOF=paramiko.common-module.html#MSG_CHANNEL_EOF,Variable paramiko.dsskey.MSG_CHANNEL_EOF=paramiko.dsskey-module.html#MSG_CHANNEL_EOF,Variable paramiko.hostkeys.MSG_CHANNEL_EOF=paramiko.hostkeys-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_gex.MSG_CHANNEL_EOF=paramiko.kex_gex-module.html#MSG_CHANNEL_EOF,Variable paramiko.kex_group1.MSG_CHANNEL_EOF=paramiko.kex_group1-module.html#MSG_CHANNEL_EOF,Variable paramiko.packet.MSG_CHANNEL_EOF=paramiko.packet-module.html#MSG_CHANNEL_EOF,Variable paramiko.pkey.MSG_CHANNEL_EOF=paramiko.pkey-module.html#MSG_CHANNEL_EOF,Variable paramiko.rsakey.MSG_CHANNEL_EOF=paramiko.rsakey-module.html#MSG_CHANNEL_EOF,Variable paramiko.server.MSG_CHANNEL_EOF=paramiko.server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp.MSG_CHANNEL_EOF=paramiko.sftp-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_attr.MSG_CHANNEL_EOF=paramiko.sftp_attr-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_client.MSG_CHANNEL_EOF=paramiko.sftp_client-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_file.MSG_CHANNEL_EOF=paramiko.sftp_file-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_handle.MSG_CHANNEL_EOF=paramiko.sftp_handle-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_server.MSG_CHANNEL_EOF=paramiko.sftp_server-module.html#MSG_CHANNEL_EOF,Variable paramiko.sftp_si.MSG_CHANNEL_EOF=paramiko.sftp_si-module.html#MSG_CHANNEL_EOF,Variable paramiko.transport.MSG_CHANNEL_EOF=paramiko.transport-module.html#MSG_CHANNEL_EOF,Variable paramiko.util.MSG_CHANNEL_EOF=paramiko.util-module.html#MSG_CHANNEL_EOF"><a title="paramiko.auth_handler.MSG_CHANNEL_EOF
paramiko.channel.MSG_CHANNEL_EOF
paramiko.client.MSG_CHANNEL_EOF
paramiko.common.MSG_CHANNEL_EOF
@@ -4076,8 +4116,8 @@ paramiko.sftp_handle.MSG_CHANNEL_EOF
paramiko.sftp_server.MSG_CHANNEL_EOF
paramiko.sftp_si.MSG_CHANNEL_EOF
paramiko.transport.MSG_CHANNEL_EOF
-paramiko.util.MSG_CHANNEL_EOF" class="py-name" href="#" onclick="return doclink('link-587', 'MSG_CHANNEL_EOF', 'link-587');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">:</tt> <tt id="link-588" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-588', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_eof</tt><tt class="py-op">,</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt> <tt class="py-line"> <tt id="link-589" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_CLOSE=paramiko.auth_handler-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.channel.MSG_CHANNEL_CLOSE=paramiko.channel-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.client.MSG_CHANNEL_CLOSE=paramiko.client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.common.MSG_CHANNEL_CLOSE=paramiko.common-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.dsskey.MSG_CHANNEL_CLOSE=paramiko.dsskey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.hostkeys.MSG_CHANNEL_CLOSE=paramiko.hostkeys-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_gex.MSG_CHANNEL_CLOSE=paramiko.kex_gex-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_group1.MSG_CHANNEL_CLOSE=paramiko.kex_group1-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.packet.MSG_CHANNEL_CLOSE=paramiko.packet-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.pkey.MSG_CHANNEL_CLOSE=paramiko.pkey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.rsakey.MSG_CHANNEL_CLOSE=paramiko.rsakey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.server.MSG_CHANNEL_CLOSE=paramiko.server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp.MSG_CHANNEL_CLOSE=paramiko.sftp-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_attr.MSG_CHANNEL_CLOSE=paramiko.sftp_attr-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_client.MSG_CHANNEL_CLOSE=paramiko.sftp_client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_file.MSG_CHANNEL_CLOSE=paramiko.sftp_file-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_handle.MSG_CHANNEL_CLOSE=paramiko.sftp_handle-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_server.MSG_CHANNEL_CLOSE=paramiko.sftp_server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_si.MSG_CHANNEL_CLOSE=paramiko.sftp_si-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.transport.MSG_CHANNEL_CLOSE=paramiko.transport-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.util.MSG_CHANNEL_CLOSE=paramiko.util-module.html#MSG_CHANNEL_CLOSE"><a title="paramiko.auth_handler.MSG_CHANNEL_CLOSE
+paramiko.util.MSG_CHANNEL_EOF" class="py-name" href="#" onclick="return doclink('link-612', 'MSG_CHANNEL_EOF', 'link-612');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">:</tt> <tt id="link-613" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-613', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_eof</tt><tt class="py-op">,</tt> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt> <tt class="py-line"> <tt id="link-614" class="py-name" targets="Variable paramiko.auth_handler.MSG_CHANNEL_CLOSE=paramiko.auth_handler-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.channel.MSG_CHANNEL_CLOSE=paramiko.channel-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.client.MSG_CHANNEL_CLOSE=paramiko.client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.common.MSG_CHANNEL_CLOSE=paramiko.common-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.dsskey.MSG_CHANNEL_CLOSE=paramiko.dsskey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.hostkeys.MSG_CHANNEL_CLOSE=paramiko.hostkeys-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_gex.MSG_CHANNEL_CLOSE=paramiko.kex_gex-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.kex_group1.MSG_CHANNEL_CLOSE=paramiko.kex_group1-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.packet.MSG_CHANNEL_CLOSE=paramiko.packet-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.pkey.MSG_CHANNEL_CLOSE=paramiko.pkey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.rsakey.MSG_CHANNEL_CLOSE=paramiko.rsakey-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.server.MSG_CHANNEL_CLOSE=paramiko.server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp.MSG_CHANNEL_CLOSE=paramiko.sftp-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_attr.MSG_CHANNEL_CLOSE=paramiko.sftp_attr-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_client.MSG_CHANNEL_CLOSE=paramiko.sftp_client-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_file.MSG_CHANNEL_CLOSE=paramiko.sftp_file-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_handle.MSG_CHANNEL_CLOSE=paramiko.sftp_handle-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_server.MSG_CHANNEL_CLOSE=paramiko.sftp_server-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.sftp_si.MSG_CHANNEL_CLOSE=paramiko.sftp_si-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.transport.MSG_CHANNEL_CLOSE=paramiko.transport-module.html#MSG_CHANNEL_CLOSE,Variable paramiko.util.MSG_CHANNEL_CLOSE=paramiko.util-module.html#MSG_CHANNEL_CLOSE"><a title="paramiko.auth_handler.MSG_CHANNEL_CLOSE
paramiko.channel.MSG_CHANNEL_CLOSE
paramiko.client.MSG_CHANNEL_CLOSE
paramiko.common.MSG_CHANNEL_CLOSE
@@ -4097,9 +4137,9 @@ paramiko.sftp_handle.MSG_CHANNEL_CLOSE
paramiko.sftp_server.MSG_CHANNEL_CLOSE
paramiko.sftp_si.MSG_CHANNEL_CLOSE
paramiko.transport.MSG_CHANNEL_CLOSE
-paramiko.util.MSG_CHANNEL_CLOSE" class="py-name" href="#" onclick="return doclink('link-589', 'MSG_CHANNEL_CLOSE', 'link-589');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">:</tt> <tt id="link-590" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-590', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_close</tt><tt class="py-op">,</tt> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-</div><a name="L2067"></a><tt class="py-lineno">2067</tt> <tt class="py-line"> </tt><script type="text/javascript">
+paramiko.util.MSG_CHANNEL_CLOSE" class="py-name" href="#" onclick="return doclink('link-614', 'MSG_CHANNEL_CLOSE', 'link-614');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">:</tt> <tt id="link-615" class="py-name"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-615', 'Channel', 'link-6');">Channel</a></tt><tt class="py-op">.</tt><tt class="py-name">_handle_close</tt><tt class="py-op">,</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+</div><a name="L2100"></a><tt class="py-lineno">2100</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -4132,7 +4172,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:33 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.transport.ChannelMap-class.html b/docs/paramiko.transport.ChannelMap-class.html
index c00478a..5718626 100644
--- a/docs/paramiko.transport.ChannelMap-class.html
+++ b/docs/paramiko.transport.ChannelMap-class.html
@@ -175,6 +175,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -182,7 +183,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -264,7 +267,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.util-module.html b/docs/paramiko.util-module.html
index 297ca6d..d6a5b61 100644
--- a/docs/paramiko.util-module.html
+++ b/docs/paramiko.util-module.html
@@ -78,6 +78,14 @@
<a href="paramiko.util.PFilter-class.html" class="summary-name">PFilter</a>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a href="paramiko.util.Counter-class.html" class="summary-name">Counter</a><br />
+ Stateful counter for CTR mode crypto
+ </td>
+ </tr>
</table>
<!-- ==================== FUNCTIONS ==================== -->
<a name="section-Functions"></a>
@@ -761,6 +769,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a name="randpool"></a><span class="summary-name">randpool</span> = <code title="StrongLockingRandomPool()">StrongLockingRandomPool()</code>
</td>
</tr>
@@ -928,7 +943,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.util-pysrc.html b/docs/paramiko.util-pysrc.html
index a7bdc07..3fa6b1d 100644
--- a/docs/paramiko.util-pysrc.html
+++ b/docs/paramiko.util-pysrc.html
@@ -54,253 +54,256 @@
</table>
<h1 class="epydoc">Source Code for <a href="paramiko.util-module.html">Module paramiko.util</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robey@lag.net&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2003-2007 Robey Pointer &lt;robeypointer@gmail.com&gt;</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">Useful functions used by the rest of paramiko.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">generators</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">binascii</tt> <tt class="py-keyword">import</tt> <tt class="py-name">hexlify</tt><tt class="py-op">,</tt> <tt class="py-name">unhexlify</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">traceback</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-0', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-1', 'common', 'link-1');">common</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-2', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module paramiko.config=paramiko.config-module.html"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-3', 'config', 'link-3');">config</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SSHConfig=paramiko.SSHConfig-class.html"><a title="paramiko.SSHConfig" class="py-name" href="#" onclick="return doclink('link-4', 'SSHConfig', 'link-4');">SSHConfig</a></tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">array</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">binascii</tt> <tt class="py-keyword">import</tt> <tt class="py-name">hexlify</tt><tt class="py-op">,</tt> <tt class="py-name">unhexlify</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">traceback</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package paramiko=paramiko-module.html"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-0', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-1', 'common', 'link-1');">common</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-2', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module paramiko.config=paramiko.config-module.html"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-3', 'config', 'link-3');">config</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SSHConfig=paramiko.SSHConfig-class.html"><a title="paramiko.SSHConfig" class="py-name" href="#" onclick="return doclink('link-4', 'SSHConfig', 'link-4');">SSHConfig</a></tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"># Change by RogerB - python &lt; 2.3 doesn't have enumerate so we implement it</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="enumerate"></a><div id="enumerate-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="enumerate-toggle" onclick="return toggle('enumerate');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html">enumerate</a><tt class="py-op">:</tt> </tt>
-</div><div id="enumerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="enumerate-expanded"><a name="enumerate.__init__"></a><div id="enumerate.__init__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="enumerate.__init__-toggle" onclick="return toggle('enumerate.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html#__init__">__init__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sequence</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="enumerate.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="enumerate.__init__-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequence</tt> <tt class="py-op">=</tt> <tt class="py-name">sequence</tt> </tt>
-</div><a name="enumerate.__iter__"></a><div id="enumerate.__iter__-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="enumerate.__iter__-toggle" onclick="return toggle('enumerate.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html#__iter__">__iter__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="enumerate.__iter__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="enumerate.__iter__-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-name">count</tt><tt class="py-op">,</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-</div></div><a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
-<a name="inflate_long"></a><div id="inflate_long-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="inflate_long-toggle" onclick="return toggle('inflate_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#inflate_long">inflate_long</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">always_positive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="inflate_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="inflate_long-expanded"><a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-docstring">"turns a normalized byte string into a long-int (adapted from Crypto.Util.number)"</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">negative</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">always_positive</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">negative</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">filler</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">negative</tt><tt class="py-op">:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">filler</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">filler</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">4</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">out</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">negative</tt><tt class="py-op">:</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">-=</tt> <tt class="py-op">(</tt><tt class="py-number">1L</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">8</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
-<a name="deflate_long"></a><div id="deflate_long-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="deflate_long-toggle" onclick="return toggle('deflate_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#deflate_long">deflate_long</a><tt class="py-op">(</tt><tt class="py-param">n</tt><tt class="py-op">,</tt> <tt class="py-param">add_sign_padding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="deflate_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="deflate_long-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-docstring">"turns a long-int into a normalized byte string (adapted from Crypto.Util.number)"</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-comment"># after much testing, this algorithm was deemed to be the fastest</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">32</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-comment"># strip off leading zeros, FFs</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-5" class="py-name" targets="Class paramiko.util.enumerate=paramiko.util.enumerate-class.html"><a title="paramiko.util.enumerate" class="py-name" href="#" onclick="return doclink('link-5', 'enumerate', 'link-5');">enumerate</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\000'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\xff'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># degenerate case, n was either 0 or -1</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\000'</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">add_sign_padding</tt><tt class="py-op">:</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
-</div><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
-<a name="format_binary_weird"></a><div id="format_binary_weird-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="format_binary_weird-toggle" onclick="return toggle('format_binary_weird');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="format_binary_weird-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary_weird-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-6" class="py-name"><a title="paramiko.util.enumerate" class="py-name" href="#" onclick="return doclink('link-6', 'enumerate', 'link-5');">enumerate</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">%</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">%</tt> <tt class="py-number">16</tt> <tt class="py-op">==</tt> <tt class="py-number">15</tt><tt class="py-op">:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'\n'</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
-<a name="format_binary"></a><div id="format_binary-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="format_binary-toggle" onclick="return toggle('format_binary');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary">format_binary</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">prefix</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="format_binary-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary-expanded"><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">x</tt> <tt class="py-op">+</tt> <tt class="py-number">16</tt><tt class="py-op">:</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Function paramiko.util.format_binary_line()=paramiko.util-module.html#format_binary_line"><a title="paramiko.util.format_binary_line" class="py-name" href="#" onclick="return doclink('link-7', 'format_binary_line', 'link-7');">format_binary_line</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">:</tt><tt class="py-name">x</tt><tt class="py-op">+</tt><tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">+=</tt> <tt class="py-number">16</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="paramiko.util.format_binary_line" class="py-name" href="#" onclick="return doclink('link-8', 'format_binary_line', 'link-7');">format_binary_line</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-name">x</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">out</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> </tt>
-<a name="format_binary_line"></a><div id="format_binary_line-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="format_binary_line-toggle" onclick="return toggle('format_binary_line');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="format_binary_line-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary_line-expanded"><a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">left</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">right</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'.%c..'</tt> <tt class="py-op">%</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">63</tt><tt class="py-op">)</tt><tt class="py-op">//</tt><tt class="py-number">95</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%-50s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">left</tt><tt class="py-op">,</tt> <tt class="py-name">right</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> </tt>
-<a name="hexify"></a><div id="hexify-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="hexify-toggle" onclick="return toggle('hexify');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#hexify">hexify</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="hexify-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="hexify-expanded"><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> </tt>
-<a name="unhexify"></a><div id="unhexify-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="unhexify-toggle" onclick="return toggle('unhexify');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#unhexify">unhexify</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="unhexify-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="unhexify-expanded"><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">unhexlify</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
-<a name="safe_string"></a><div id="safe_string-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="safe_string-toggle" onclick="return toggle('safe_string');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#safe_string">safe_string</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="safe_string-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="safe_string-expanded"><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">127</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">c</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'%%%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
-</div><a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-comment"># ''.join([['%%%02X' % ord(c), c][(ord(c) &gt;= 32) and (ord(c) &lt;= 127)] for c in s])</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
-<a name="bit_length"></a><div id="bit_length-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="bit_length-toggle" onclick="return toggle('bit_length');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#bit_length">bit_length</a><tt class="py-op">(</tt><tt class="py-param">n</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="bit_length-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="bit_length-expanded"><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">norm</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-9', 'deflate_long', 'link-9');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">hbyte</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">norm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">bitlen</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">norm</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">hbyte</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">hbyte</tt> <tt class="py-op">&lt;&lt;=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">bitlen</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">bitlen</tt> </tt>
-</div><a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
-<a name="tb_strings"></a><div id="tb_strings-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="tb_strings-toggle" onclick="return toggle('tb_strings');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#tb_strings">tb_strings</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tb_strings-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tb_strings-expanded"><a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">format_exception</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"># Change by RogerB - python &lt; 2.3 doesn't have enumerate so we implement it</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="enumerate"></a><div id="enumerate-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="enumerate-toggle" onclick="return toggle('enumerate');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html">enumerate</a><tt class="py-op">:</tt> </tt>
+</div><div id="enumerate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="enumerate-expanded"><a name="enumerate.__init__"></a><div id="enumerate.__init__-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="enumerate.__init__-toggle" onclick="return toggle('enumerate.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html#__init__">__init__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sequence</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="enumerate.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="enumerate.__init__-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequence</tt> <tt class="py-op">=</tt> <tt class="py-name">sequence</tt> </tt>
+</div><a name="enumerate.__iter__"></a><div id="enumerate.__iter__-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="enumerate.__iter__-toggle" onclick="return toggle('enumerate.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.enumerate-class.html#__iter__">__iter__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="enumerate.__iter__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="enumerate.__iter__-expanded"><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-name">count</tt><tt class="py-op">,</tt> <tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">count</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+</div></div><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> </tt>
+<a name="inflate_long"></a><div id="inflate_long-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="inflate_long-toggle" onclick="return toggle('inflate_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#inflate_long">inflate_long</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">always_positive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="inflate_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="inflate_long-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-docstring">"turns a normalized byte string into a long-int (adapted from Crypto.Util.number)"</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">negative</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">always_positive</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">negative</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">filler</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">negative</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">filler</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">filler</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">4</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">out</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">negative</tt><tt class="py-op">:</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">-=</tt> <tt class="py-op">(</tt><tt class="py-number">1L</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">8</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
+<a name="deflate_long"></a><div id="deflate_long-def"><a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="deflate_long-toggle" onclick="return toggle('deflate_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#deflate_long">deflate_long</a><tt class="py-op">(</tt><tt class="py-param">n</tt><tt class="py-op">,</tt> <tt class="py-param">add_sign_padding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="deflate_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="deflate_long-expanded"><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-docstring">"turns a long-int into a normalized byte string (adapted from Crypto.Util.number)"</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-comment"># after much testing, this algorithm was deemed to be the fastest</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;I'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0xffffffffL</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">32</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-comment"># strip off leading zeros, FFs</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-5" class="py-name" targets="Class paramiko.util.enumerate=paramiko.util.enumerate-class.html"><a title="paramiko.util.enumerate" class="py-name" href="#" onclick="return doclink('link-5', 'enumerate', 'link-5');">enumerate</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\000'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\xff'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-comment"># degenerate case, n was either 0 or -1</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\000'</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">add_sign_padding</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">'\xff'</tt> <tt class="py-op">+</tt> <tt class="py-name">s</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="format_binary_weird"></a><div id="format_binary_weird-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="format_binary_weird-toggle" onclick="return toggle('format_binary_weird');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="format_binary_weird-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary_weird-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-6" class="py-name"><a title="paramiko.util.enumerate" class="py-name" href="#" onclick="return doclink('link-6', 'enumerate', 'link-5');">enumerate</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">%</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">%</tt> <tt class="py-number">16</tt> <tt class="py-op">==</tt> <tt class="py-number">15</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'\n'</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> </tt>
+<a name="format_binary"></a><div id="format_binary-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="format_binary-toggle" onclick="return toggle('format_binary');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary">format_binary</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">prefix</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="format_binary-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary-expanded"><a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">x</tt> <tt class="py-op">+</tt> <tt class="py-number">16</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Function paramiko.util.format_binary_line()=paramiko.util-module.html#format_binary_line"><a title="paramiko.util.format_binary_line" class="py-name" href="#" onclick="return doclink('link-7', 'format_binary_line', 'link-7');">format_binary_line</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">:</tt><tt class="py-name">x</tt><tt class="py-op">+</tt><tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">+=</tt> <tt class="py-number">16</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="paramiko.util.format_binary_line" class="py-name" href="#" onclick="return doclink('link-8', 'format_binary_line', 'link-7');">format_binary_line</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-name">x</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">out</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
+<a name="format_binary_line"></a><div id="format_binary_line-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="format_binary_line-toggle" onclick="return toggle('format_binary_line');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="format_binary_line-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="format_binary_line-expanded"><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">left</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">right</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'.%c..'</tt> <tt class="py-op">%</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">63</tt><tt class="py-op">)</tt><tt class="py-op">//</tt><tt class="py-number">95</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%-50s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">left</tt><tt class="py-op">,</tt> <tt class="py-name">right</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
+<a name="hexify"></a><div id="hexify-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="hexify-toggle" onclick="return toggle('hexify');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#hexify">hexify</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="hexify-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="hexify-expanded"><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hexlify</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> </tt>
+<a name="unhexify"></a><div id="unhexify-def"><a name="L122"></a><tt class="py-lineno">122</tt> <a class="py-toggle" href="#" id="unhexify-toggle" onclick="return toggle('unhexify');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#unhexify">unhexify</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="unhexify-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="unhexify-expanded"><a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">unhexlify</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
+<a name="safe_string"></a><div id="safe_string-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="safe_string-toggle" onclick="return toggle('safe_string');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#safe_string">safe_string</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="safe_string-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="safe_string-expanded"><a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-number">127</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">c</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'%%%02X'</tt> <tt class="py-op">%</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-comment"># ''.join([['%%%02X' % ord(c), c][(ord(c) &gt;= 32) and (ord(c) &lt;= 127)] for c in s])</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> </tt>
+<a name="bit_length"></a><div id="bit_length-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="bit_length-toggle" onclick="return toggle('bit_length');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#bit_length">bit_length</a><tt class="py-op">(</tt><tt class="py-param">n</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="bit_length-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="bit_length-expanded"><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">norm</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name" targets="Function paramiko.util.deflate_long()=paramiko.util-module.html#deflate_long"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-9', 'deflate_long', 'link-9');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">hbyte</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">norm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hbyte</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">1</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">bitlen</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">norm</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">hbyte</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x80</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">hbyte</tt> <tt class="py-op">&lt;&lt;=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-name">bitlen</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">bitlen</tt> </tt>
</div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
-<a name="generate_key_bytes"></a><div id="generate_key_bytes-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="generate_key_bytes-toggle" onclick="return toggle('generate_key_bytes');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><tt class="py-op">(</tt><tt class="py-param">hashclass</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="generate_key_bytes-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="generate_key_bytes-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> Given a password, passphrase, or other human-source key, scramble it</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> through a secure hash into some keyworthy bytes. This specific algorithm</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> is used for encrypting/decrypting private key files.</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> @param hashclass: class from L{Crypto.Hash} that can be used as a secure</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> hashing function (like C{MD5} or C{SHA}).</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> @type hashclass: L{Crypto.Hash}</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @param salt: data to salt the hash with.</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> @type salt: string</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @param key: human-entered password or passphrase.</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> @type key: string</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: number of bytes to generate.</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> @return: key data</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">keydata</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">8</tt><tt class="py-op">:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">salt</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">nbytes</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">hashclass</tt><tt class="py-op">.</tt><tt class="py-name">new</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">keydata</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">nbytes</tt> <tt class="py-op">-=</tt> <tt class="py-name">size</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">keydata</tt> </tt>
-</div><a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> </tt>
-<a name="load_host_keys"></a><div id="load_host_keys-def"><a name="L181"></a><tt class="py-lineno">181</tt> <a class="py-toggle" href="#" id="load_host_keys-toggle" onclick="return toggle('load_host_keys');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="load_host_keys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="load_host_keys-expanded"><a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> Read a file of known SSH host keys, in the format used by openssh, and</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> return a compound dict of C{hostname -&gt; keytype -&gt;} L{PKey &lt;paramiko.pkey.PKey&gt;}.</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> The hostname may be an IP address or DNS name. The keytype will be either</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> C{"ssh-rsa"} or C{"ssh-dss"}.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"><tt class="py-docstring"> This type of file unfortunately doesn't exist on Windows, but on posix,</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> it will usually be stored in C{os.path.expanduser("~/.ssh/known_hosts")}.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5.3, this is just a wrapper around L{HostKeys}.</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to read host keys from</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> @return: dict of host keys, indexed by hostname and then keytype</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dict(hostname, dict(keytype, L{PKey &lt;paramiko.pkey.PKey&gt;}))</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-10', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module paramiko.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-11', 'hostkeys', 'link-11');">hostkeys</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class paramiko.HostKeys=paramiko.HostKeys-class.html"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-12', 'HostKeys', 'link-12');">HostKeys</a></tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-13" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-13', 'HostKeys', 'link-12');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt>
-<a name="parse_ssh_config"></a><div id="parse_ssh_config-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="parse_ssh_config-toggle" onclick="return toggle('parse_ssh_config');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><tt class="py-op">(</tt><tt class="py-param">file_obj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse_ssh_config-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_ssh_config-expanded"><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> Provided only as a backward-compatible wrapper around L{SSHConfig}.</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-14', 'config', 'link-3');">config</a></tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="paramiko.SSHConfig" class="py-name" href="#" onclick="return doclink('link-15', 'SSHConfig', 'link-4');">SSHConfig</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt id="link-16" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-16', 'config', 'link-3');">config</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method paramiko.SSHConfig.parse()=paramiko.SSHConfig-class.html#parse"><a title="paramiko.SSHConfig.parse" class="py-name" href="#" onclick="return doclink('link-17', 'parse', 'link-17');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-18" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-18', 'config', 'link-3');">config</a></tt> </tt>
-</div><a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> </tt>
-<a name="lookup_ssh_host_config"></a><div id="lookup_ssh_host_config-def"><a name="L209"></a><tt class="py-lineno">209</tt> <a class="py-toggle" href="#" id="lookup_ssh_host_config-toggle" onclick="return toggle('lookup_ssh_host_config');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><tt class="py-op">(</tt><tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="lookup_ssh_host_config-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="lookup_ssh_host_config-expanded"><a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> Provided only as a backward-compatible wrapper around L{SSHConfig}.</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-19" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-19', 'config', 'link-3');">config</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method paramiko.HostKeys.lookup()=paramiko.HostKeys-class.html#lookup,Method paramiko.SSHConfig.lookup()=paramiko.SSHConfig-class.html#lookup"><a title="paramiko.HostKeys.lookup
-paramiko.SSHConfig.lookup" class="py-name" href="#" onclick="return doclink('link-20', 'lookup', 'link-20');">lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> </tt>
-<a name="mod_inverse"></a><div id="mod_inverse-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="mod_inverse-toggle" onclick="return toggle('mod_inverse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><tt class="py-op">(</tt><tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="mod_inverse-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="mod_inverse-expanded"><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># it's crazy how small python can make this function.</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">u1</tt><tt class="py-op">,</tt> <tt class="py-name">u2</tt><tt class="py-op">,</tt> <tt class="py-name">u3</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">v1</tt><tt class="py-op">,</tt> <tt class="py-name">v2</tt><tt class="py-op">,</tt> <tt class="py-name">v3</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">v3</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">u3</tt> <tt class="py-op">//</tt> <tt class="py-name">v3</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">u1</tt><tt class="py-op">,</tt> <tt class="py-name">v1</tt> <tt class="py-op">=</tt> <tt class="py-name">v1</tt><tt class="py-op">,</tt> <tt class="py-name">u1</tt> <tt class="py-op">-</tt> <tt class="py-name">v1</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">u2</tt><tt class="py-op">,</tt> <tt class="py-name">v2</tt> <tt class="py-op">=</tt> <tt class="py-name">v2</tt><tt class="py-op">,</tt> <tt class="py-name">u2</tt> <tt class="py-op">-</tt> <tt class="py-name">v2</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">u3</tt><tt class="py-op">,</tt> <tt class="py-name">v3</tt> <tt class="py-op">=</tt> <tt class="py-name">v3</tt><tt class="py-op">,</tt> <tt class="py-name">u3</tt> <tt class="py-op">-</tt> <tt class="py-name">v3</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">u2</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">u2</tt> <tt class="py-op">+=</tt> <tt class="py-name">m</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">u2</tt> </tt>
-</div><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt id="link-21" class="py-name" targets="Variable paramiko.util._g_thread_ids=paramiko.util-module.html#_g_thread_ids"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-21', '_g_thread_ids', 'link-21');">_g_thread_ids</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable paramiko.util._g_thread_counter=paramiko.util-module.html#_g_thread_counter"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-22', '_g_thread_counter', 'link-22');">_g_thread_counter</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable paramiko.util._g_thread_lock=paramiko.util-module.html#_g_thread_lock"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-23', '_g_thread_lock', 'link-23');">_g_thread_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="get_thread_id"></a><div id="get_thread_id-def"><a name="L232"></a><tt class="py-lineno">232</tt> <a class="py-toggle" href="#" id="get_thread_id-toggle" onclick="return toggle('get_thread_id');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="get_thread_id-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_thread_id-expanded"><a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">global</tt> <tt id="link-24" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-24', '_g_thread_ids', 'link-21');">_g_thread_ids</a></tt><tt class="py-op">,</tt> <tt id="link-25" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-25', '_g_thread_counter', 'link-22');">_g_thread_counter</a></tt><tt class="py-op">,</tt> <tt id="link-26" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-26', '_g_thread_lock', 'link-23');">_g_thread_lock</a></tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">tid</tt> <tt class="py-op">=</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">currentThread</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-27" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-27', '_g_thread_ids', 'link-21');">_g_thread_ids</a></tt><tt class="py-op">[</tt><tt class="py-name">tid</tt><tt class="py-op">]</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt id="link-28" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-28', '_g_thread_lock', 'link-23');">_g_thread_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-29', '_g_thread_counter', 'link-22');">_g_thread_counter</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-30', '_g_thread_ids', 'link-21');">_g_thread_ids</a></tt><tt class="py-op">[</tt><tt class="py-name">tid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-31', '_g_thread_counter', 'link-22');">_g_thread_counter</a></tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-32', '_g_thread_lock', 'link-23');">_g_thread_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> </tt>
-<a name="log_to_file"></a><div id="log_to_file-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="log_to_file-toggle" onclick="return toggle('log_to_file');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#log_to_file">log_to_file</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">=</tt><tt id="link-33" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
+<a name="tb_strings"></a><div id="tb_strings-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="tb_strings-toggle" onclick="return toggle('tb_strings');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#tb_strings">tb_strings</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tb_strings-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tb_strings-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">format_exception</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
+<a name="generate_key_bytes"></a><div id="generate_key_bytes-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="generate_key_bytes-toggle" onclick="return toggle('generate_key_bytes');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><tt class="py-op">(</tt><tt class="py-param">hashclass</tt><tt class="py-op">,</tt> <tt class="py-param">salt</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="generate_key_bytes-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="generate_key_bytes-expanded"><a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> Given a password, passphrase, or other human-source key, scramble it</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> through a secure hash into some keyworthy bytes. This specific algorithm</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> is used for encrypting/decrypting private key files.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @param hashclass: class from L{Crypto.Hash} that can be used as a secure</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> hashing function (like C{MD5} or C{SHA}).</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @type hashclass: L{Crypto.Hash}</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> @param salt: data to salt the hash with.</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> @type salt: string</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> @param key: human-entered password or passphrase.</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> @type key: string</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> @param nbytes: number of bytes to generate.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> @return: key data</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">keydata</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">8</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">salt</tt> <tt class="py-op">=</tt> <tt class="py-name">salt</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">nbytes</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">hashclass</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Class Method paramiko.util.Counter.new()=paramiko.util.Counter-class.html#new"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-10', 'new', 'link-10');">new</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">salt</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">digest</tt> <tt class="py-op">=</tt> <tt class="py-name">hash_obj</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">digest</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">keydata</tt> <tt class="py-op">+=</tt> <tt class="py-name">digest</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</tt><tt class="py-op">]</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">nbytes</tt> <tt class="py-op">-=</tt> <tt class="py-name">size</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">keydata</tt> </tt>
+</div><a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> </tt>
+<a name="load_host_keys"></a><div id="load_host_keys-def"><a name="L184"></a><tt class="py-lineno">184</tt> <a class="py-toggle" href="#" id="load_host_keys-toggle" onclick="return toggle('load_host_keys');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="load_host_keys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="load_host_keys-expanded"><a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> Read a file of known SSH host keys, in the format used by openssh, and</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> return a compound dict of C{hostname -&gt; keytype -&gt;} L{PKey &lt;paramiko.pkey.PKey&gt;}.</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"><tt class="py-docstring"> The hostname may be an IP address or DNS name. The keytype will be either</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> C{"ssh-rsa"} or C{"ssh-dss"}.</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> This type of file unfortunately doesn't exist on Windows, but on posix,</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> it will usually be stored in C{os.path.expanduser("~/.ssh/known_hosts")}.</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> Since 1.5.3, this is just a wrapper around L{HostKeys}.</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to read host keys from</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> @return: dict of host keys, indexed by hostname and then keytype</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dict(hostname, dict(keytype, L{PKey &lt;paramiko.pkey.PKey&gt;}))</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-11" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-11', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Module paramiko.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-12', 'hostkeys', 'link-12');">hostkeys</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" class="py-name" targets="Class paramiko.HostKeys=paramiko.HostKeys-class.html"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-13', 'HostKeys', 'link-13');">HostKeys</a></tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-14" class="py-name"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-14', 'HostKeys', 'link-13');">HostKeys</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
+<a name="parse_ssh_config"></a><div id="parse_ssh_config-def"><a name="L204"></a><tt class="py-lineno">204</tt> <a class="py-toggle" href="#" id="parse_ssh_config-toggle" onclick="return toggle('parse_ssh_config');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><tt class="py-op">(</tt><tt class="py-param">file_obj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="parse_ssh_config-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_ssh_config-expanded"><a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> Provided only as a backward-compatible wrapper around L{SSHConfig}.</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt id="link-15" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-15', 'config', 'link-3');">config</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="paramiko.SSHConfig" class="py-name" href="#" onclick="return doclink('link-16', 'SSHConfig', 'link-4');">SSHConfig</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt id="link-17" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-17', 'config', 'link-3');">config</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method paramiko.SSHConfig.parse()=paramiko.SSHConfig-class.html#parse"><a title="paramiko.SSHConfig.parse" class="py-name" href="#" onclick="return doclink('link-18', 'parse', 'link-18');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-19" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-19', 'config', 'link-3');">config</a></tt> </tt>
+</div><a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> </tt>
+<a name="lookup_ssh_host_config"></a><div id="lookup_ssh_host_config-def"><a name="L212"></a><tt class="py-lineno">212</tt> <a class="py-toggle" href="#" id="lookup_ssh_host_config-toggle" onclick="return toggle('lookup_ssh_host_config');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><tt class="py-op">(</tt><tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="lookup_ssh_host_config-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="lookup_ssh_host_config-expanded"><a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"><tt class="py-docstring"> Provided only as a backward-compatible wrapper around L{SSHConfig}.</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-20" class="py-name"><a title="paramiko.config" class="py-name" href="#" onclick="return doclink('link-20', 'config', 'link-3');">config</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method paramiko.HostKeys.lookup()=paramiko.HostKeys-class.html#lookup,Method paramiko.SSHConfig.lookup()=paramiko.SSHConfig-class.html#lookup"><a title="paramiko.HostKeys.lookup
+paramiko.SSHConfig.lookup" class="py-name" href="#" onclick="return doclink('link-21', 'lookup', 'link-21');">lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> </tt>
+<a name="mod_inverse"></a><div id="mod_inverse-def"><a name="L218"></a><tt class="py-lineno">218</tt> <a class="py-toggle" href="#" id="mod_inverse-toggle" onclick="return toggle('mod_inverse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><tt class="py-op">(</tt><tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">m</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="mod_inverse-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="mod_inverse-expanded"><a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-comment"># it's crazy how small python can make this function.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">u1</tt><tt class="py-op">,</tt> <tt class="py-name">u2</tt><tt class="py-op">,</tt> <tt class="py-name">u3</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">m</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">v1</tt><tt class="py-op">,</tt> <tt class="py-name">v2</tt><tt class="py-op">,</tt> <tt class="py-name">v3</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">v3</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">u3</tt> <tt class="py-op">//</tt> <tt class="py-name">v3</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">u1</tt><tt class="py-op">,</tt> <tt class="py-name">v1</tt> <tt class="py-op">=</tt> <tt class="py-name">v1</tt><tt class="py-op">,</tt> <tt class="py-name">u1</tt> <tt class="py-op">-</tt> <tt class="py-name">v1</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">u2</tt><tt class="py-op">,</tt> <tt class="py-name">v2</tt> <tt class="py-op">=</tt> <tt class="py-name">v2</tt><tt class="py-op">,</tt> <tt class="py-name">u2</tt> <tt class="py-op">-</tt> <tt class="py-name">v2</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">u3</tt><tt class="py-op">,</tt> <tt class="py-name">v3</tt> <tt class="py-op">=</tt> <tt class="py-name">v3</tt><tt class="py-op">,</tt> <tt class="py-name">u3</tt> <tt class="py-op">-</tt> <tt class="py-name">v3</tt> <tt class="py-op">*</tt> <tt class="py-name">q</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">u2</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">u2</tt> <tt class="py-op">+=</tt> <tt class="py-name">m</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">u2</tt> </tt>
+</div><a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable paramiko.util._g_thread_ids=paramiko.util-module.html#_g_thread_ids"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-22', '_g_thread_ids', 'link-22');">_g_thread_ids</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable paramiko.util._g_thread_counter=paramiko.util-module.html#_g_thread_counter"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-23', '_g_thread_counter', 'link-23');">_g_thread_counter</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable paramiko.util._g_thread_lock=paramiko.util-module.html#_g_thread_lock"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-24', '_g_thread_lock', 'link-24');">_g_thread_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="get_thread_id"></a><div id="get_thread_id-def"><a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="get_thread_id-toggle" onclick="return toggle('get_thread_id');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="get_thread_id-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_thread_id-expanded"><a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-keyword">global</tt> <tt id="link-25" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-25', '_g_thread_ids', 'link-22');">_g_thread_ids</a></tt><tt class="py-op">,</tt> <tt id="link-26" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-26', '_g_thread_counter', 'link-23');">_g_thread_counter</a></tt><tt class="py-op">,</tt> <tt id="link-27" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-27', '_g_thread_lock', 'link-24');">_g_thread_lock</a></tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">tid</tt> <tt class="py-op">=</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">currentThread</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-28" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-28', '_g_thread_ids', 'link-22');">_g_thread_ids</a></tt><tt class="py-op">[</tt><tt class="py-name">tid</tt><tt class="py-op">]</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-29', '_g_thread_lock', 'link-24');">_g_thread_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt id="link-30" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-30', '_g_thread_counter', 'link-23');">_g_thread_counter</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="paramiko.util._g_thread_ids" class="py-name" href="#" onclick="return doclink('link-31', '_g_thread_ids', 'link-22');">_g_thread_ids</a></tt><tt class="py-op">[</tt><tt class="py-name">tid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="paramiko.util._g_thread_counter" class="py-name" href="#" onclick="return doclink('link-32', '_g_thread_counter', 'link-23');">_g_thread_counter</a></tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt id="link-33" class="py-name"><a title="paramiko.util._g_thread_lock" class="py-name" href="#" onclick="return doclink('link-33', '_g_thread_lock', 'link-24');">_g_thread_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> </tt>
+<a name="log_to_file"></a><div id="log_to_file-def"><a name="L249"></a><tt class="py-lineno">249</tt> <a class="py-toggle" href="#" id="log_to_file-toggle" onclick="return toggle('log_to_file');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#log_to_file">log_to_file</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">=</tt><tt id="link-34" class="py-name" targets="Variable paramiko.auth_handler.DEBUG=paramiko.auth_handler-module.html#DEBUG,Variable paramiko.channel.DEBUG=paramiko.channel-module.html#DEBUG,Variable paramiko.client.DEBUG=paramiko.client-module.html#DEBUG,Variable paramiko.common.DEBUG=paramiko.common-module.html#DEBUG,Variable paramiko.dsskey.DEBUG=paramiko.dsskey-module.html#DEBUG,Variable paramiko.hostkeys.DEBUG=paramiko.hostkeys-module.html#DEBUG,Variable paramiko.kex_gex.DEBUG=paramiko.kex_gex-module.html#DEBUG,Variable paramiko.kex_group1.DEBUG=paramiko.kex_group1-module.html#DEBUG,Variable paramiko.logging22.DEBUG=paramiko.logging22-module.html#DEBUG,Variable paramiko.packet.DEBUG=paramiko.packet-module.html#DEBUG,Variable paramiko.pkey.DEBUG=paramiko.pkey-module.html#DEBUG,Variable paramiko.rsakey.DEBUG=paramiko.rsakey-module.html#DEBUG,Variable paramiko.server.DEBUG=paramiko.server-module.html#DEBUG,Variable paramiko.sftp.DEBUG=paramiko.sftp-module.html#DEBUG,Variable paramiko.sftp_attr.DEBUG=paramiko.sftp_attr-module.html#DEBUG,Variable paramiko.sftp_client.DEBUG=paramiko.sftp_client-module.html#DEBUG,Variable paramiko.sftp_file.DEBUG=paramiko.sftp_file-module.html#DEBUG,Variable paramiko.sftp_handle.DEBUG=paramiko.sftp_handle-module.html#DEBUG,Variable paramiko.sftp_server.DEBUG=paramiko.sftp_server-module.html#DEBUG,Variable paramiko.sftp_si.DEBUG=paramiko.sftp_si-module.html#DEBUG,Variable paramiko.transport.DEBUG=paramiko.transport-module.html#DEBUG,Variable paramiko.util.DEBUG=paramiko.util-module.html#DEBUG"><a title="paramiko.auth_handler.DEBUG
paramiko.channel.DEBUG
paramiko.client.DEBUG
paramiko.common.DEBUG
@@ -321,31 +324,62 @@ paramiko.sftp_handle.DEBUG
paramiko.sftp_server.DEBUG
paramiko.sftp_si.DEBUG
paramiko.transport.DEBUG
-paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-33', 'DEBUG', 'link-33');">DEBUG</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="log_to_file-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="log_to_file-expanded"><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-docstring">"send paramiko logs to a logfile, if they're not already going somewhere"</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Function paramiko.logging22.getLogger()=paramiko.logging22-module.html#getLogger"><a title="paramiko.logging22.getLogger" class="py-name" href="#" onclick="return doclink('link-34', 'getLogger', 'link-34');">getLogger</a></tt><tt class="py-op">(</tt><tt class="py-string">"paramiko"</tt><tt class="py-op">)</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method paramiko.logging22.logger.setLevel()=paramiko.logging22.logger-class.html#setLevel"><a title="paramiko.logging22.logger.setLevel" class="py-name" href="#" onclick="return doclink('link-35', 'setLevel', 'link-35');">setLevel</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-36', 'open', 'link-36');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">lh</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Class paramiko.logging22.StreamHandler=paramiko.logging22.StreamHandler-class.html"><a title="paramiko.logging22.StreamHandler" class="py-name" href="#" onclick="return doclink('link-37', 'StreamHandler', 'link-37');">StreamHandler</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">lh</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method paramiko.logging22.StreamHandler.setFormatter()=paramiko.logging22.StreamHandler-class.html#setFormatter"><a title="paramiko.logging22.StreamHandler.setFormatter" class="py-name" href="#" onclick="return doclink('link-38', 'setFormatter', 'link-38');">setFormatter</a></tt><tt class="py-op">(</tt><tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Class paramiko.logging22.Formatter=paramiko.logging22.Formatter-class.html"><a title="paramiko.logging22.Formatter" class="py-name" href="#" onclick="return doclink('link-39', 'Formatter', 'link-39');">Formatter</a></tt><tt class="py-op">(</tt><tt class="py-string">'%(levelname)-.3s [%(asctime)s.%(msecs)03d] thr=%(_threadid)-3d %(name)s: %(message)s'</tt><tt class="py-op">,</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-string">'%Y%m%d-%H:%M:%S'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method paramiko.logging22.logger.addHandler()=paramiko.logging22.logger-class.html#addHandler"><a title="paramiko.logging22.logger.addHandler" class="py-name" href="#" onclick="return doclink('link-40', 'addHandler', 'link-40');">addHandler</a></tt><tt class="py-op">(</tt><tt class="py-name">lh</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-comment"># make only one filter object, so it doesn't get applied more than once</tt> </tt>
-<a name="PFilter"></a><div id="PFilter-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="PFilter-toggle" onclick="return toggle('PFilter');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.util.PFilter-class.html">PFilter</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="PFilter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PFilter-expanded"><a name="PFilter.filter"></a><div id="PFilter.filter-def"><a name="L260"></a><tt class="py-lineno">260</tt> <a class="py-toggle" href="#" id="PFilter.filter-toggle" onclick="return toggle('PFilter.filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.PFilter-class.html#filter">filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">record</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="PFilter.filter-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PFilter.filter-expanded"><a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-name">record</tt><tt class="py-op">.</tt><tt class="py-name">_threadid</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name" targets="Function paramiko.util.get_thread_id()=paramiko.util-module.html#get_thread_id"><a title="paramiko.util.get_thread_id" class="py-name" href="#" onclick="return doclink('link-41', 'get_thread_id', 'link-41');">get_thread_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div></div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable paramiko.util._pfilter=paramiko.util-module.html#_pfilter"><a title="paramiko.util._pfilter" class="py-name" href="#" onclick="return doclink('link-42', '_pfilter', 'link-42');">_pfilter</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name" targets="Class paramiko.util.PFilter=paramiko.util.PFilter-class.html"><a title="paramiko.util.PFilter" class="py-name" href="#" onclick="return doclink('link-43', 'PFilter', 'link-43');">PFilter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> </tt>
-<a name="get_logger"></a><div id="get_logger-def"><a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="get_logger-toggle" onclick="return toggle('get_logger');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#get_logger">get_logger</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="get_logger-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_logger-expanded"><a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="paramiko.logging22.getLogger" class="py-name" href="#" onclick="return doclink('link-44', 'getLogger', 'link-34');">getLogger</a></tt><tt class="py-op">(</tt><tt id="link-45" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
-paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-45', 'name', 'link-45');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method paramiko.logging22.logger.addFilter()=paramiko.logging22.logger-class.html#addFilter"><a title="paramiko.logging22.logger.addFilter" class="py-name" href="#" onclick="return doclink('link-46', 'addFilter', 'link-46');">addFilter</a></tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="paramiko.util._pfilter" class="py-name" href="#" onclick="return doclink('link-47', '_pfilter', 'link-42');">_pfilter</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">l</tt> </tt>
-</div><a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> </tt><script type="text/javascript">
+paramiko.util.DEBUG" class="py-name" href="#" onclick="return doclink('link-34', 'DEBUG', 'link-34');">DEBUG</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="log_to_file-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="log_to_file-expanded"><a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-docstring">"send paramiko logs to a logfile, if they're not already going somewhere"</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Function paramiko.logging22.getLogger()=paramiko.logging22-module.html#getLogger"><a title="paramiko.logging22.getLogger" class="py-name" href="#" onclick="return doclink('link-35', 'getLogger', 'link-35');">getLogger</a></tt><tt class="py-op">(</tt><tt class="py-string">"paramiko"</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.logging22.logger.setLevel()=paramiko.logging22.logger-class.html#setLevel"><a title="paramiko.logging22.logger.setLevel" class="py-name" href="#" onclick="return doclink('link-36', 'setLevel', 'link-36');">setLevel</a></tt><tt class="py-op">(</tt><tt class="py-name">level</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-37', 'open', 'link-37');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">lh</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Class paramiko.logging22.StreamHandler=paramiko.logging22.StreamHandler-class.html"><a title="paramiko.logging22.StreamHandler" class="py-name" href="#" onclick="return doclink('link-38', 'StreamHandler', 'link-38');">StreamHandler</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">lh</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method paramiko.logging22.StreamHandler.setFormatter()=paramiko.logging22.StreamHandler-class.html#setFormatter"><a title="paramiko.logging22.StreamHandler.setFormatter" class="py-name" href="#" onclick="return doclink('link-39', 'setFormatter', 'link-39');">setFormatter</a></tt><tt class="py-op">(</tt><tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Class paramiko.logging22.Formatter=paramiko.logging22.Formatter-class.html"><a title="paramiko.logging22.Formatter" class="py-name" href="#" onclick="return doclink('link-40', 'Formatter', 'link-40');">Formatter</a></tt><tt class="py-op">(</tt><tt class="py-string">'%(levelname)-.3s [%(asctime)s.%(msecs)03d] thr=%(_threadid)-3d %(name)s: %(message)s'</tt><tt class="py-op">,</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-string">'%Y%m%d-%H:%M:%S'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method paramiko.logging22.logger.addHandler()=paramiko.logging22.logger-class.html#addHandler"><a title="paramiko.logging22.logger.addHandler" class="py-name" href="#" onclick="return doclink('link-41', 'addHandler', 'link-41');">addHandler</a></tt><tt class="py-op">(</tt><tt class="py-name">lh</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-comment"># make only one filter object, so it doesn't get applied more than once</tt> </tt>
+<a name="PFilter"></a><div id="PFilter-def"><a name="L262"></a><tt class="py-lineno">262</tt> <a class="py-toggle" href="#" id="PFilter-toggle" onclick="return toggle('PFilter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.util.PFilter-class.html">PFilter</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PFilter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PFilter-expanded"><a name="PFilter.filter"></a><div id="PFilter.filter-def"><a name="L263"></a><tt class="py-lineno">263</tt> <a class="py-toggle" href="#" id="PFilter.filter-toggle" onclick="return toggle('PFilter.filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.PFilter-class.html#filter">filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">record</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PFilter.filter-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PFilter.filter-expanded"><a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-name">record</tt><tt class="py-op">.</tt><tt class="py-name">_threadid</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name" targets="Function paramiko.util.get_thread_id()=paramiko.util-module.html#get_thread_id"><a title="paramiko.util.get_thread_id" class="py-name" href="#" onclick="return doclink('link-42', 'get_thread_id', 'link-42');">get_thread_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div></div><a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable paramiko.util._pfilter=paramiko.util-module.html#_pfilter"><a title="paramiko.util._pfilter" class="py-name" href="#" onclick="return doclink('link-43', '_pfilter', 'link-43');">_pfilter</a></tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name" targets="Class paramiko.util.PFilter=paramiko.util.PFilter-class.html"><a title="paramiko.util.PFilter" class="py-name" href="#" onclick="return doclink('link-44', 'PFilter', 'link-44');">PFilter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> </tt>
+<a name="get_logger"></a><div id="get_logger-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="get_logger-toggle" onclick="return toggle('get_logger');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util-module.html#get_logger">get_logger</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="get_logger-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_logger-expanded"><a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.logging22.getLogger" class="py-name" href="#" onclick="return doclink('link-45', 'getLogger', 'link-35');">getLogger</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name" targets="Variable paramiko.kex_gex.KexGex.name=paramiko.kex_gex.KexGex-class.html#name,Variable paramiko.kex_group1.KexGroup1.name=paramiko.kex_group1.KexGroup1-class.html#name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-46', 'name', 'link-46');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method paramiko.logging22.logger.addFilter()=paramiko.logging22.logger-class.html#addFilter"><a title="paramiko.logging22.logger.addFilter" class="py-name" href="#" onclick="return doclink('link-47', 'addFilter', 'link-47');">addFilter</a></tt><tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="paramiko.util._pfilter" class="py-name" href="#" onclick="return doclink('link-48', '_pfilter', 'link-43');">_pfilter</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">l</tt> </tt>
+</div><a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> </tt>
+<a name="Counter"></a><div id="Counter-def"><a name="L274"></a><tt class="py-lineno">274</tt> <a class="py-toggle" href="#" id="Counter-toggle" onclick="return toggle('Counter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.util.Counter-class.html">Counter</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Counter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Counter-expanded"><a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-docstring">"""Stateful counter for CTR mode crypto"""</tt> </tt>
+<a name="Counter.__init__"></a><div id="Counter.__init__-def"><a name="L276"></a><tt class="py-lineno">276</tt> <a class="py-toggle" href="#" id="Counter.__init__-toggle" onclick="return toggle('Counter.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.Counter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nbits</tt><tt class="py-op">,</tt> <tt class="py-param">initial_value</tt><tt class="py-op">=</tt><tt class="py-number">1L</tt><tt class="py-op">,</tt> <tt class="py-param">overflow</tt><tt class="py-op">=</tt><tt class="py-number">0L</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Counter.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Counter.__init__-expanded"><a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blocksize</tt> <tt class="py-op">=</tt> <tt class="py-name">nbits</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">overflow</tt> <tt class="py-op">=</tt> <tt class="py-name">overflow</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-comment"># start with value - 1 so we don't have to store intermediate values when counting</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-comment"># could the iv be 0?</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">initial_value</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'\xFF'</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blocksize</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-49', 'deflate_long', 'link-9');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">initial_value</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">add_sign_padding</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blocksize</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> </tt>
+<a name="Counter.__call__"></a><div id="Counter.__call__-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="Counter.__call__-toggle" onclick="return toggle('Counter.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.Counter-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Counter.__call__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Counter.__call__-expanded"><a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-docstring">"""Increament the counter and return the new value"""</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blocksize</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">i</tt> <tt class="py-op">&gt;</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">chr</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">256</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">c</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\x00'</tt><tt class="py-op">:</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">tostring</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-comment"># counter reset</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-50', 'deflate_long', 'link-9');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">overflow</tt><tt class="py-op">,</tt> <tt class="py-name">add_sign_padding</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'\x00'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blocksize</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">tostring</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> </tt>
+<a name="Counter.new"></a><div id="Counter.new-def"><a name="L300"></a><tt class="py-lineno">300</tt> <a class="py-toggle" href="#" id="Counter.new-toggle" onclick="return toggle('Counter.new');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.util.Counter-class.html#new">new</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">nbits</tt><tt class="py-op">,</tt> <tt class="py-param">initial_value</tt><tt class="py-op">=</tt><tt class="py-number">1L</tt><tt class="py-op">,</tt> <tt class="py-param">overflow</tt><tt class="py-op">=</tt><tt class="py-number">0L</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Counter.new-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Counter.new-expanded"><a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cls</tt><tt class="py-op">(</tt><tt class="py-name">nbits</tt><tt class="py-op">,</tt> <tt class="py-name">initial_value</tt><tt class="py-op">=</tt><tt class="py-name">initial_value</tt><tt class="py-op">,</tt> <tt class="py-name">overflow</tt><tt class="py-op">=</tt><tt class="py-name">overflow</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt id="link-51" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-51', 'new', 'link-10');">new</a></tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="paramiko.util.Counter.new" class="py-name" href="#" onclick="return doclink('link-52', 'new', 'link-10');">new</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -378,7 +412,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:34 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.util.Counter-class.html b/docs/paramiko.util.Counter-class.html
new file mode 100644
index 0000000..0d77ad5
--- /dev/null
+++ b/docs/paramiko.util.Counter-class.html
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>paramiko.util.Counter</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
+ <a href="paramiko.util-module.html">Module&nbsp;util</a> ::
+ Class&nbsp;Counter
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="paramiko.util.Counter-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Counter</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.util-pysrc.html#Counter">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">Counter</strong>
+</pre>
+
+<hr />
+<p>Stateful counter for CTR mode crypto</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Instance Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.util.Counter-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">nbits</span>,
+ <span class="summary-sig-arg">initial_value</span>=<span class="summary-sig-default">1</span>,
+ <span class="summary-sig-arg">overflow</span>=<span class="summary-sig-default">0</span>)</span><br />
+ x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#Counter.__init__">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="__call__"></a><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Increament the counter and return the new value</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#Counter.__call__">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS METHODS ==================== -->
+<a name="section-ClassMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Class Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="new"></a><span class="summary-sig-name">new</span>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">nbits</span>,
+ <span class="summary-sig-arg">initial_value</span>=<span class="summary-sig-default">1</span>,
+ <span class="summary-sig-arg">overflow</span>=<span class="summary-sig-default">0</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#Counter.new">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Properties</span></td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Method Details</span></td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">nbits</span>,
+ <span class="sig-arg">initial_value</span>=<span class="sig-default">1</span>,
+ <span class="sig-arg">overflow</span>=<span class="sig-default">0</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.util-pysrc.html#Counter.__init__">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>x.__init__(...) initializes x; see x.__class__.__doc__ for
+ signature</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/paramiko.util.PFilter-class.html b/docs/paramiko.util.PFilter-class.html
index c68bd23..2af319b 100644
--- a/docs/paramiko.util.PFilter-class.html
+++ b/docs/paramiko.util.PFilter-class.html
@@ -91,6 +91,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__init__</code>,
@@ -99,7 +100,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -146,7 +149,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.util.enumerate-class.html b/docs/paramiko.util.enumerate-class.html
index 9553b31..2bfa0c7 100644
--- a/docs/paramiko.util.enumerate-class.html
+++ b/docs/paramiko.util.enumerate-class.html
@@ -123,7 +123,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.win_pageant-module.html b/docs/paramiko.win_pageant-module.html
index cc3bbf0..c37382c 100644
--- a/docs/paramiko.win_pageant-module.html
+++ b/docs/paramiko.win_pageant-module.html
@@ -116,6 +116,13 @@
<a name="win32con_WM_COPYDATA"></a><span class="summary-name">win32con_WM_COPYDATA</span> = <code title="74">74</code>
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'paramiko'"><code class="variable-quote">'</code><code class="variable-string">paramiko</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
</table>
<!-- ==================== FUNCTION DETAILS ==================== -->
<a name="section-FunctionDetails"></a>
@@ -175,7 +182,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:28 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:15 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.win_pageant-pysrc.html b/docs/paramiko.win_pageant-pysrc.html
index 6b062ee..3ff1f48 100644
--- a/docs/paramiko.win_pageant-pysrc.html
+++ b/docs/paramiko.win_pageant-pysrc.html
@@ -55,24 +55,24 @@
<h1 class="epydoc">Source Code for <a href="paramiko.win_pageant-module.html">Module paramiko.win_pageant</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2005 John Arbash-Meinel &lt;john@arbash-meinel.com&gt;</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Modified up by: Todd Whiteman &lt;ToddW@ActiveState.com&gt;</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># any later version.</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># details.</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># Modified up by: Todd Whiteman &lt;ToddW@ActiveState.com&gt;</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"># This file is part of paramiko.</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is free software; you can redistribute it and/or modify it under the</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2.1 of the License, or (at your option)</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"># along with Paramiko; if not, write to the Free Software Foundation, Inc.,</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"># 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring">Functions for communicating with Pageant, the basic windows ssh agent program.</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
@@ -84,12 +84,12 @@
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">array</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-comment"># if you're on windows, you should have one of these, i guess?</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ctypes is part of standard library since Python 2.5</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-0" class="py-name" targets="Variable paramiko.win_pageant._has_win32all=paramiko.win_pageant-module.html#_has_win32all"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-0', '_has_win32all', 'link-0');">_has_win32all</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-comment"># ctypes is part of standard library since Python 2.5</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable paramiko.win_pageant._has_win32all=paramiko.win_pageant-module.html#_has_win32all"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-0', '_has_win32all', 'link-0');">_has_win32all</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable paramiko.win_pageant._has_ctypes=paramiko.win_pageant-module.html#_has_ctypes"><a title="paramiko.win_pageant._has_ctypes" class="py-name" href="#" onclick="return doclink('link-1', '_has_ctypes', 'link-1');">_has_ctypes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-comment"># win32gui is preferred over win32ui to avoid MFC dependencies</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">import</tt> <tt class="py-name">win32gui</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">win32gui</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt id="link-2" class="py-name"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-2', '_has_win32all', 'link-0');">_has_win32all</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -102,8 +102,8 @@
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable paramiko.win_pageant._AGENT_COPYDATA_ID=paramiko.win_pageant-module.html#_AGENT_COPYDATA_ID"><a title="paramiko.win_pageant._AGENT_COPYDATA_ID" class="py-name" href="#" onclick="return doclink('link-4', '_AGENT_COPYDATA_ID', 'link-4');">_AGENT_COPYDATA_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x804e50ba</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable paramiko.win_pageant._AGENT_MAX_MSGLEN=paramiko.win_pageant-module.html#_AGENT_MAX_MSGLEN"><a title="paramiko.win_pageant._AGENT_MAX_MSGLEN" class="py-name" href="#" onclick="return doclink('link-5', '_AGENT_MAX_MSGLEN', 'link-5');">_AGENT_MAX_MSGLEN</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8192</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-comment"># Note: The WM_COPYDATA value is pulled from win32con, as a workaround</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># so we do not have to import this huge library just for this one variable.</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-6" class="py-name" targets="Variable paramiko.win_pageant.win32con_WM_COPYDATA=paramiko.win_pageant-module.html#win32con_WM_COPYDATA"><a title="paramiko.win_pageant.win32con_WM_COPYDATA" class="py-name" href="#" onclick="return doclink('link-6', 'win32con_WM_COPYDATA', 'link-6');">win32con_WM_COPYDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-number">74</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-comment"># so we do not have to import this huge library just for this one variable.</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable paramiko.win_pageant.win32con_WM_COPYDATA=paramiko.win_pageant-module.html#win32con_WM_COPYDATA"><a title="paramiko.win_pageant.win32con_WM_COPYDATA" class="py-name" href="#" onclick="return doclink('link-6', 'win32con_WM_COPYDATA', 'link-6');">win32con_WM_COPYDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-number">74</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> </tt>
<a name="_get_pageant_window_object"></a><div id="_get_pageant_window_object-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="_get_pageant_window_object-toggle" onclick="return toggle('_get_pageant_window_object');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant-module.html#_get_pageant_window_object">_get_pageant_window_object</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -116,7 +116,7 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-9" class="py-name"><a title="paramiko.win_pageant._has_ctypes" class="py-name" href="#" onclick="return doclink('link-9', '_has_ctypes', 'link-1');">_has_ctypes</a></tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># Return 0 if there is no Pageant window.</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">ctypes</tt><tt class="py-op">.</tt><tt class="py-name">windll</tt><tt class="py-op">.</tt><tt class="py-name">user32</tt><tt class="py-op">.</tt><tt class="py-name">FindWindowA</tt><tt class="py-op">(</tt><tt class="py-string">'Pageant'</tt><tt class="py-op">,</tt> <tt class="py-string">'Pageant'</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ctypes</tt><tt class="py-op">.</tt><tt class="py-name">windll</tt><tt class="py-op">.</tt><tt class="py-name">user32</tt><tt class="py-op">.</tt><tt class="py-name">FindWindowA</tt><tt class="py-op">(</tt><tt class="py-string">'Pageant'</tt><tt class="py-op">,</tt> <tt class="py-string">'Pageant'</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
@@ -136,33 +136,33 @@ paramiko.rng_win32.error" class="py-name" href="#" onclick="return doclink('link
</div><div id="_query_pageant-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_query_pageant-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">hwnd</tt> <tt class="py-op">=</tt> <tt class="py-name">_get_pageant_window_object</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hwnd</tt><tt class="py-op">:</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-comment"># Raise a failure to connect exception, pageant isn't running anymore!</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-comment"># Write our pageant request string into the file (pageant will read this to determine what to do)</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mktemp</tt><tt class="py-op">(</tt><tt class="py-string">'.pag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mktemp</tt><tt class="py-op">(</tt><tt class="py-string">'.pag'</tt><tt class="py-op">)</tt> </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">map_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-12" class="py-name" targets="Method paramiko.SFTPServerInterface.open()=paramiko.SFTPServerInterface-class.html#open"><a title="paramiko.SFTPServerInterface.open" class="py-name" href="#" onclick="return doclink('link-12', 'open', 'link-12');">open</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'w+b'</tt><tt class="py-op">)</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.BufferedFile.write()=paramiko.BufferedFile-class.html#write,Method paramiko.SFTPHandle.write()=paramiko.SFTPHandle-class.html#write"><a title="paramiko.BufferedFile.write
paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-13', 'write', 'link-13');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt> <tt class="py-op">)</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-comment"># Ensure the rest of the file is empty, otherwise pageant will read this</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.BufferedFile.write
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.BufferedFile.write
paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-14', 'write', 'link-13');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'\0'</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="paramiko.win_pageant._AGENT_MAX_MSGLEN" class="py-name" href="#" onclick="return doclink('link-15', '_AGENT_MAX_MSGLEN', 'link-5');">_AGENT_MAX_MSGLEN</a></tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-comment"># Create the shared file map that pageant will use to read from</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">pymap</tt> <tt class="py-op">=</tt> <tt class="py-name">mmap</tt><tt class="py-op">.</tt><tt class="py-name">mmap</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">pymap</tt> <tt class="py-op">=</tt> <tt class="py-name">mmap</tt><tt class="py-op">.</tt><tt class="py-name">mmap</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.Channel.fileno()=paramiko.Channel-class.html#fileno,Method paramiko.pipe.PosixPipe.fileno()=paramiko.pipe.PosixPipe-class.html#fileno,Method paramiko.pipe.WindowsPipe.fileno()=paramiko.pipe.WindowsPipe-class.html#fileno"><a title="paramiko.Channel.fileno
paramiko.pipe.PosixPipe.fileno
paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-16', 'fileno', 'link-16');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="paramiko.win_pageant._AGENT_MAX_MSGLEN" class="py-name" href="#" onclick="return doclink('link-17', '_AGENT_MAX_MSGLEN', 'link-5');">_AGENT_MAX_MSGLEN</a></tt><tt class="py-op">,</tt> <tt class="py-name">tagname</tt><tt class="py-op">=</tt><tt class="py-name">map_filename</tt><tt class="py-op">,</tt> <tt class="py-name">access</tt><tt class="py-op">=</tt><tt class="py-name">mmap</tt><tt class="py-op">.</tt><tt class="py-name">ACCESS_WRITE</tt><tt class="py-op">)</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-comment"># Create an array buffer containing the mapped filename</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">char_buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">,</tt> <tt class="py-name">map_filename</tt> <tt class="py-op">+</tt> <tt class="py-string">'\0'</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">char_buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">,</tt> <tt class="py-name">map_filename</tt> <tt class="py-op">+</tt> <tt class="py-string">'\0'</tt><tt class="py-op">)</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">char_buffer_address</tt><tt class="py-op">,</tt> <tt class="py-name">char_buffer_size</tt> <tt class="py-op">=</tt> <tt class="py-name">char_buffer</tt><tt class="py-op">.</tt><tt class="py-name">buffer_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-comment"># Create a string to use for the SendMessage function call</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">cds</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">"LLP"</tt><tt class="py-op">,</tt> <tt id="link-18" class="py-name"><a title="paramiko.win_pageant._AGENT_COPYDATA_ID" class="py-name" href="#" onclick="return doclink('link-18', '_AGENT_COPYDATA_ID', 'link-4');">_AGENT_COPYDATA_ID</a></tt><tt class="py-op">,</tt> <tt class="py-name">char_buffer_size</tt><tt class="py-op">,</tt> <tt class="py-name">char_buffer_address</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">cds</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">"LLP"</tt><tt class="py-op">,</tt> <tt id="link-18" class="py-name"><a title="paramiko.win_pageant._AGENT_COPYDATA_ID" class="py-name" href="#" onclick="return doclink('link-18', '_AGENT_COPYDATA_ID', 'link-4');">_AGENT_COPYDATA_ID</a></tt><tt class="py-op">,</tt> <tt class="py-name">char_buffer_size</tt><tt class="py-op">,</tt> <tt class="py-name">char_buffer_address</tt><tt class="py-op">)</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-19" class="py-name"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-19', '_has_win32all', 'link-0');">_has_win32all</a></tt><tt class="py-op">:</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-comment"># win32gui.SendMessage should also allow the same pattern as</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># ctypes, but let's keep it like this for now...</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">response</tt> <tt class="py-op">=</tt> <tt class="py-name">win32gui</tt><tt class="py-op">.</tt><tt class="py-name">SendMessage</tt><tt class="py-op">(</tt><tt class="py-name">hwnd</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name"><a title="paramiko.win_pageant.win32con_WM_COPYDATA" class="py-name" href="#" onclick="return doclink('link-20', 'win32con_WM_COPYDATA', 'link-6');">win32con_WM_COPYDATA</a></tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">cds</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">cds</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-comment"># ctypes, but let's keep it like this for now...</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">response</tt> <tt class="py-op">=</tt> <tt class="py-name">win32gui</tt><tt class="py-op">.</tt><tt class="py-name">SendMessage</tt><tt class="py-op">(</tt><tt class="py-name">hwnd</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name"><a title="paramiko.win_pageant.win32con_WM_COPYDATA" class="py-name" href="#" onclick="return doclink('link-20', 'win32con_WM_COPYDATA', 'link-6');">win32con_WM_COPYDATA</a></tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">cds</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">cds</tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-21" class="py-name"><a title="paramiko.win_pageant._has_ctypes" class="py-name" href="#" onclick="return doclink('link-21', '_has_ctypes', 'link-1');">_has_ctypes</a></tt><tt class="py-op">:</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">_buf</tt> <tt class="py-op">=</tt> <tt class="py-name">array</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-string">'B'</tt><tt class="py-op">,</tt> <tt class="py-name">cds</tt><tt class="py-op">)</tt> </tt>
<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">_addr</tt><tt class="py-op">,</tt> <tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">_buf</tt><tt class="py-op">.</tt><tt class="py-name">buffer_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -205,7 +205,7 @@ paramiko.pipe.PosixPipe.close
paramiko.pipe.WindowsPipe.close
paramiko.win_pageant.PageantConnection.close" class="py-name" href="#" onclick="return doclink('link-26', 'close', 'link-25');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-comment"># Remove the file, it was temporary only</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.SFTPClient.unlink()=paramiko.SFTPClient-class.html#unlink"><a title="paramiko.SFTPClient.unlink" class="py-name" href="#" onclick="return doclink('link-27', 'unlink', 'link-27');">unlink</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method paramiko.SFTPClient.unlink()=paramiko.SFTPClient-class.html#unlink"><a title="paramiko.SFTPClient.unlink" class="py-name" href="#" onclick="return doclink('link-27', 'unlink', 'link-27');">unlink</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
</div><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
<a name="PageantConnection"></a><div id="PageantConnection-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="PageantConnection-toggle" onclick="return toggle('PageantConnection');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.win_pageant.PageantConnection-class.html">PageantConnection</a> <tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -266,7 +266,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:35 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:20 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/paramiko.win_pageant.PageantConnection-class.html b/docs/paramiko.win_pageant.PageantConnection-class.html
index 40eb0af..dd2bd18 100644
--- a/docs/paramiko.win_pageant.PageantConnection-class.html
+++ b/docs/paramiko.win_pageant.PageantConnection-class.html
@@ -146,6 +146,7 @@ object --+
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
+ <code>__format__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
@@ -153,7 +154,9 @@ object --+
<code>__reduce_ex__</code>,
<code>__repr__</code>,
<code>__setattr__</code>,
- <code>__str__</code>
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
</p>
</td>
</tr>
@@ -235,7 +238,7 @@ object --+
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:31 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:17 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/redirect.html b/docs/redirect.html
index 33190ec..af9392a 100644
--- a/docs/redirect.html
+++ b/docs/redirect.html
@@ -7,7 +7,7 @@
<body>
<script type="text/javascript">
<!--
-var pages = ["paramiko.ssh_exception.PartialAuthentication-c", "paramiko.win_pageant.PageantConnection-c", "paramiko.rng.StrongLockingRandomPool-c", "paramiko.buffered_pipe.BufferedPipe-c", "paramiko.PasswordRequiredException-c", "paramiko.buffered_pipe.PipeTimeout-c", "paramiko.channel.ChannelStderrFile-c", "paramiko.compress.ZlibDecompressor-c", "paramiko.packet.NeedRekeyException-c", "paramiko.AuthenticationException-c", "paramiko.compress.ZlibCompressor-c", "paramiko.logging22.StreamHandler-c", "paramiko.BadAuthenticationType-c", "paramiko.hostkeys.HostKeyEntry-c", "paramiko.MissingHostKeyPolicy-c", "paramiko.kex_group1.KexGroup1-c", "paramiko.transport.ChannelMap-c", "paramiko.BadHostKeyException-c", "paramiko.SFTPServerInterface-c", "paramiko.logging22.Formatter-c", "paramiko.primes.ModulusPack-c", "paramiko.ChannelException-c", "paramiko.SubsystemHandler-c", "paramiko.ber.BERException-c", "paramiko.logging22.logger-c", "paramiko.pipe.WindowsPipe-c", "paramiko.SecurityOptions-c", "paramiko.ServerInterface-c", "paramiko.rng_posix.error-c", "paramiko.rng_win32.error-c", "paramiko.SFTPAttributes-c", "paramiko.kex_gex.KexGex-c", "paramiko.pipe.PosixPipe-c", "paramiko.util.enumerate-c", "paramiko.buffered_pipe-m", "paramiko.ssh_exception-m", "paramiko.AutoAddPolicy-c", "paramiko.WarningPolicy-c", "paramiko.auth_handler-m", "paramiko.BufferedFile-c", "paramiko.RejectPolicy-c", "paramiko.SSHException-c", "paramiko.util.PFilter-c", "paramiko.sftp_client-m", "paramiko.sftp_handle-m", "paramiko.sftp_server-m", "paramiko.win_pageant-m", "paramiko.pipe.OrPipe-c", "paramiko.kex_group1-m", "paramiko.SFTPClient-c", "paramiko.SFTPHandle-c", "paramiko.SFTPServer-c", "paramiko.logging22-m", "paramiko.rng_posix-m", "paramiko.rng_win32-m", "paramiko.sftp_attr-m", "paramiko.sftp_file-m", "paramiko.transport-m", "paramiko.SFTPError-c", "paramiko.SSHClient-c", "paramiko.SSHConfig-c", "paramiko.Transport-c", "paramiko.compress-m", "paramiko.hostkeys-m", "paramiko.resource-m", "paramiko.AgentKey-c", "paramiko.HostKeys-c", "paramiko.SFTPFile-c", "paramiko.channel-m", "paramiko.kex_gex-m", "paramiko.message-m", "paramiko.sftp_si-m", "paramiko.Channel-c", "paramiko.Message-c", "paramiko.ber.BER-c", "paramiko.client-m", "paramiko.common-m", "paramiko.config-m", "paramiko.dsskey-m", "paramiko.packet-m", "paramiko.primes-m", "paramiko.rsakey-m", "paramiko.server-m", "paramiko.DSSKey-c", "paramiko.RSAKey-c", "paramiko.agent-m", "paramiko.Agent-c", "paramiko.file-m", "paramiko.pipe-m", "paramiko.pkey-m", "paramiko.sftp-m", "paramiko.util-m", "paramiko.PKey-c", "paramiko.SFTP-c", "paramiko.ber-m", "paramiko.rng-m", "paramiko-m"];
+var pages = ["paramiko.ssh_exception.PartialAuthentication-c", "paramiko.win_pageant.PageantConnection-c", "paramiko.rng.StrongLockingRandomPool-c", "paramiko.buffered_pipe.BufferedPipe-c", "paramiko.PasswordRequiredException-c", "paramiko.buffered_pipe.PipeTimeout-c", "paramiko.channel.ChannelStderrFile-c", "paramiko.compress.ZlibDecompressor-c", "paramiko.packet.NeedRekeyException-c", "paramiko.AuthenticationException-c", "paramiko.compress.ZlibCompressor-c", "paramiko.logging22.StreamHandler-c", "paramiko.BadAuthenticationType-c", "paramiko.hostkeys.HostKeyEntry-c", "paramiko.MissingHostKeyPolicy-c", "paramiko.kex_group1.KexGroup1-c", "paramiko.transport.ChannelMap-c", "paramiko.BadHostKeyException-c", "paramiko.SFTPServerInterface-c", "paramiko.logging22.Formatter-c", "paramiko.primes.ModulusPack-c", "paramiko.ChannelException-c", "paramiko.SubsystemHandler-c", "paramiko.ber.BERException-c", "paramiko.logging22.logger-c", "paramiko.pipe.WindowsPipe-c", "paramiko.SecurityOptions-c", "paramiko.ServerInterface-c", "paramiko.rng_posix.error-c", "paramiko.rng_win32.error-c", "paramiko.SFTPAttributes-c", "paramiko.kex_gex.KexGex-c", "paramiko.pipe.PosixPipe-c", "paramiko.util.enumerate-c", "paramiko.buffered_pipe-m", "paramiko.ssh_exception-m", "paramiko.AutoAddPolicy-c", "paramiko.WarningPolicy-c", "paramiko.auth_handler-m", "paramiko.BufferedFile-c", "paramiko.RejectPolicy-c", "paramiko.SSHException-c", "paramiko.util.Counter-c", "paramiko.util.PFilter-c", "paramiko.sftp_client-m", "paramiko.sftp_handle-m", "paramiko.sftp_server-m", "paramiko.win_pageant-m", "paramiko.pipe.OrPipe-c", "paramiko.kex_group1-m", "paramiko.SFTPClient-c", "paramiko.SFTPHandle-c", "paramiko.SFTPServer-c", "paramiko.logging22-m", "paramiko.rng_posix-m", "paramiko.rng_win32-m", "paramiko.sftp_attr-m", "paramiko.sftp_file-m", "paramiko.transport-m", "paramiko.SFTPError-c", "paramiko.SSHClient-c", "paramiko.SSHConfig-c", "paramiko.Transport-c", "paramiko.compress-m", "paramiko.hostkeys-m", "paramiko.resource-m", "paramiko.AgentKey-c", "paramiko.HostKeys-c", "paramiko.SFTPFile-c", "paramiko.channel-m", "paramiko.kex_gex-m", "paramiko.message-m", "paramiko.sftp_si-m", "paramiko.Channel-c", "paramiko.Message-c", "paramiko.ber.BER-c", "paramiko.client-m", "paramiko.common-m", "paramiko.config-m", "paramiko.dsskey-m", "paramiko.packet-m", "paramiko.primes-m", "paramiko.rsakey-m", "paramiko.server-m", "paramiko.DSSKey-c", "paramiko.RSAKey-c", "paramiko.agent-m", "paramiko.Agent-c", "paramiko.file-m", "paramiko.pipe-m", "paramiko.pkey-m", "paramiko.sftp-m", "paramiko.util-m", "paramiko.PKey-c", "paramiko.SFTP-c", "paramiko.ber-m", "paramiko.rng-m", "paramiko-m"];
var dottedName = get_anchor();
if (dottedName) {
var target = redirect_url(dottedName);
diff --git a/docs/since-index.html b/docs/since-index.html
index 078046b..ef2aa22 100644
--- a/docs/since-index.html
+++ b/docs/since-index.html
@@ -280,7 +280,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ Generated by Epydoc 3.0.1 on Sun Nov 1 22:14:14 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/toc-everything.html b/docs/toc-everything.html
index 53f4262..e276cc5 100644
--- a/docs/toc-everything.html
+++ b/docs/toc-everything.html
@@ -50,7 +50,8 @@
>paramiko.logging22.Formatter</a><br /> <a target="mainFrame" href="paramiko.logging22.StreamHandler-class.html"
>paramiko.logging22.StreamHandler</a><br /> <a target="mainFrame" href="paramiko.logging22.logger-class.html"
>paramiko.logging22.logger</a><br /> <a target="mainFrame" href="paramiko.rng_win32.error-class.html"
- >paramiko.rng_win32.error</a><br /> <a target="mainFrame" href="paramiko.util.PFilter-class.html"
+ >paramiko.rng_win32.error</a><br /> <a target="mainFrame" href="paramiko.util.Counter-class.html"
+ >paramiko.util.Counter</a><br /> <a target="mainFrame" href="paramiko.util.PFilter-class.html"
>paramiko.util.PFilter</a><br /> <a target="mainFrame" href="paramiko.util.enumerate-class.html"
>paramiko.util.enumerate</a><br /> <a target="mainFrame" href="paramiko.win_pageant.PageantConnection-class.html"
>paramiko.win_pageant.PageantConnection</a><br /> <h2 class="toc">All Functions</h2>
@@ -81,7 +82,9 @@
>paramiko.logging22.DEBUG</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#ERROR"
>paramiko.logging22.ERROR</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#INFO"
>paramiko.logging22.INFO</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#WARNING"
- >paramiko.logging22.WARNING</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_FAILED"
+ >paramiko.logging22.WARNING</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#__package__"
+ >paramiko.logging22.__package__</a><br /> <a target="mainFrame" href="paramiko.rng_win32-module.html#__package__"
+ >paramiko.rng_win32.__package__</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_FAILED"
>paramiko.util.AUTH_FAILED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL"
>paramiko.util.AUTH_PARTIALLY_SUCCESSFUL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_SUCCESSFUL"
>paramiko.util.AUTH_SUCCESSFUL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#CONNECTION_FAILED_CODE"
@@ -129,8 +132,10 @@
>paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_SUCCEEDED"
>paramiko.util.OPEN_SUCCEEDED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#PY22"
>paramiko.util.PY22</a><br /> <a target="mainFrame" href="paramiko.util-module.html#WARNING"
- >paramiko.util.WARNING</a><br /> <a target="mainFrame" href="paramiko.util-module.html#randpool"
- >paramiko.util.randpool</a><br /> <a target="mainFrame" href="paramiko.win_pageant-module.html#win32con_WM_COPYDATA"
+ >paramiko.util.WARNING</a><br /> <a target="mainFrame" href="paramiko.util-module.html#__package__"
+ >paramiko.util.__package__</a><br /> <a target="mainFrame" href="paramiko.util-module.html#randpool"
+ >paramiko.util.randpool</a><br /> <a target="mainFrame" href="paramiko.win_pageant-module.html#__package__"
+ >paramiko.win_pageant.__package__</a><br /> <a target="mainFrame" href="paramiko.win_pageant-module.html#win32con_WM_COPYDATA"
>paramiko.win_pageant.win32con_WM_COPYDATA</a><br /><hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.ber-module.html b/docs/toc-paramiko.ber-module.html
index b5c19e1..7190335 100644
--- a/docs/toc-paramiko.ber-module.html
+++ b/docs/toc-paramiko.ber-module.html
@@ -13,6 +13,7 @@
<h1 class="toc">Module ber</h1>
<hr />
<h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.buffered_pipe-module.html b/docs/toc-paramiko.buffered_pipe-module.html
index 699ad46..338589e 100644
--- a/docs/toc-paramiko.buffered_pipe-module.html
+++ b/docs/toc-paramiko.buffered_pipe-module.html
@@ -13,6 +13,7 @@
<h1 class="toc">Module buffered_pipe</h1>
<hr />
<h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.compress-module.html b/docs/toc-paramiko.compress-module.html
index ac5a589..b4243ab 100644
--- a/docs/toc-paramiko.compress-module.html
+++ b/docs/toc-paramiko.compress-module.html
@@ -13,6 +13,7 @@
<h1 class="toc">Module compress</h1>
<hr />
<h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.config-module.html b/docs/toc-paramiko.config-module.html
index 4552d73..fab1f11 100644
--- a/docs/toc-paramiko.config-module.html
+++ b/docs/toc-paramiko.config-module.html
@@ -12,6 +12,7 @@
alink="#204080">
<h1 class="toc">Module config</h1>
<hr />
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.file-module.html b/docs/toc-paramiko.file-module.html
index 3fefa62..bb4f7e9 100644
--- a/docs/toc-paramiko.file-module.html
+++ b/docs/toc-paramiko.file-module.html
@@ -12,6 +12,7 @@
alink="#204080">
<h1 class="toc">Module file</h1>
<hr />
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.logging22-module.html b/docs/toc-paramiko.logging22-module.html
index 23b4050..df6f73f 100644
--- a/docs/toc-paramiko.logging22-module.html
+++ b/docs/toc-paramiko.logging22-module.html
@@ -24,7 +24,8 @@
>DEBUG</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#ERROR"
>ERROR</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#INFO"
>INFO</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#WARNING"
- >WARNING</a><br /><hr />
+ >WARNING</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#__package__"
+ >__package__</a><br /><hr />
<script type="text/javascript">
<!--
diff --git a/docs/toc-paramiko.message-module.html b/docs/toc-paramiko.message-module.html
index 0ef8b8b..14c9b27 100644
--- a/docs/toc-paramiko.message-module.html
+++ b/docs/toc-paramiko.message-module.html
@@ -12,6 +12,7 @@
alink="#204080">
<h1 class="toc">Module message</h1>
<hr />
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.pipe-module.html b/docs/toc-paramiko.pipe-module.html
index 328fcb9..fc5da49 100644
--- a/docs/toc-paramiko.pipe-module.html
+++ b/docs/toc-paramiko.pipe-module.html
@@ -14,6 +14,7 @@
<hr />
<h2 class="toc">Classes</h2>
<h2 class="toc">Functions</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.primes-module.html b/docs/toc-paramiko.primes-module.html
index ddf708a..ae93b5c 100644
--- a/docs/toc-paramiko.primes-module.html
+++ b/docs/toc-paramiko.primes-module.html
@@ -13,6 +13,7 @@
<h1 class="toc">Module primes</h1>
<hr />
<h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.rng_posix-module.html b/docs/toc-paramiko.rng_posix-module.html
index 308d2e4..57f7c20 100644
--- a/docs/toc-paramiko.rng_posix-module.html
+++ b/docs/toc-paramiko.rng_posix-module.html
@@ -14,6 +14,7 @@
<hr />
<h2 class="toc">Classes</h2>
<h2 class="toc">Functions</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.rng_win32-module.html b/docs/toc-paramiko.rng_win32-module.html
index 71da0c5..48d7c5f 100644
--- a/docs/toc-paramiko.rng_win32-module.html
+++ b/docs/toc-paramiko.rng_win32-module.html
@@ -16,7 +16,9 @@
<a target="mainFrame" href="paramiko.rng_win32.error-class.html"
>error</a><br /> <h2 class="toc">Functions</h2>
<a target="mainFrame" href="paramiko.rng_win32-module.html#open_rng_device"
- >open_rng_device</a><br /><hr />
+ >open_rng_device</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="paramiko.rng_win32-module.html#__package__"
+ >__package__</a><br /><hr />
<script type="text/javascript">
<!--
diff --git a/docs/toc-paramiko.ssh_exception-module.html b/docs/toc-paramiko.ssh_exception-module.html
index eb2abfe..90172f1 100644
--- a/docs/toc-paramiko.ssh_exception-module.html
+++ b/docs/toc-paramiko.ssh_exception-module.html
@@ -13,6 +13,7 @@
<h1 class="toc">Module ssh_exception</h1>
<hr />
<h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
<hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.util-module.html b/docs/toc-paramiko.util-module.html
index 569b46c..2addc4c 100644
--- a/docs/toc-paramiko.util-module.html
+++ b/docs/toc-paramiko.util-module.html
@@ -13,7 +13,8 @@
<h1 class="toc">Module util</h1>
<hr />
<h2 class="toc">Classes</h2>
- <a target="mainFrame" href="paramiko.util.PFilter-class.html"
+ <a target="mainFrame" href="paramiko.util.Counter-class.html"
+ >Counter</a><br /> <a target="mainFrame" href="paramiko.util.PFilter-class.html"
>PFilter</a><br /> <a target="mainFrame" href="paramiko.util.enumerate-class.html"
>enumerate</a><br /> <h2 class="toc">Functions</h2>
<a target="mainFrame" href="paramiko.util-module.html#bit_length"
@@ -83,7 +84,8 @@
>OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_SUCCEEDED"
>OPEN_SUCCEEDED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#PY22"
>PY22</a><br /> <a target="mainFrame" href="paramiko.util-module.html#WARNING"
- >WARNING</a><br /> <a target="mainFrame" href="paramiko.util-module.html#randpool"
+ >WARNING</a><br /> <a target="mainFrame" href="paramiko.util-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="paramiko.util-module.html#randpool"
>randpool</a><br /><hr />
<script type="text/javascript">
diff --git a/docs/toc-paramiko.win_pageant-module.html b/docs/toc-paramiko.win_pageant-module.html
index 988262c..51065be 100644
--- a/docs/toc-paramiko.win_pageant-module.html
+++ b/docs/toc-paramiko.win_pageant-module.html
@@ -17,7 +17,8 @@
>PageantConnection</a><br /> <h2 class="toc">Functions</h2>
<a target="mainFrame" href="paramiko.win_pageant-module.html#can_talk_to_agent"
>can_talk_to_agent</a><br /> <h2 class="toc">Variables</h2>
- <a target="mainFrame" href="paramiko.win_pageant-module.html#win32con_WM_COPYDATA"
+ <a target="mainFrame" href="paramiko.win_pageant-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="paramiko.win_pageant-module.html#win32con_WM_COPYDATA"
>win32con_WM_COPYDATA</a><br /><hr />
<script type="text/javascript">