aboutsummaryrefslogtreecommitdiff
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:25:55 -0500
commite299181a5dda25aed4879ebcbe1359604448b3ae (patch)
treef2d18804fcc3367ca9c5e977c1618679b5a5e363
parented280d5ac360e2af796e9bd973d7b4df89f0c449 (diff)
downloadpython-paramiko-e299181a5dda25aed4879ebcbe1359604448b3ae.tar
python-paramiko-e299181a5dda25aed4879ebcbe1359604448b3ae.tar.gz
Imported Upstream version 1.7.6upstream/1.7.6
-rw-r--r--PKG-INFO6
-rw-r--r--README6
-rwxr-xr-xdemos/demo.py2
-rw-r--r--[-rwxr-xr-x]demos/demo_server.py2
-rwxr-xr-xdemos/demo_sftp.py2
-rwxr-xr-xdemos/demo_simple.py39
-rw-r--r--[-rwxr-xr-x]demos/forward.py2
-rw-r--r--demos/interactive.py2
-rwxr-xr-xdemos/rforward.py2
-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
-rw-r--r--paramiko.egg-info/PKG-INFO6
-rw-r--r--paramiko.egg-info/SOURCES.txt3
-rw-r--r--paramiko/__init__.py14
-rw-r--r--paramiko/auth_handler.py4
-rw-r--r--paramiko/ber.py2
-rw-r--r--paramiko/buffered_pipe.py2
-rw-r--r--paramiko/channel.py49
-rw-r--r--paramiko/client.py116
-rw-r--r--paramiko/common.py2
-rw-r--r--paramiko/compress.py2
-rw-r--r--paramiko/config.py43
-rw-r--r--paramiko/dsskey.py2
-rw-r--r--paramiko/file.py2
-rw-r--r--paramiko/hostkeys.py57
-rw-r--r--paramiko/kex_gex.py2
-rw-r--r--paramiko/kex_group1.py2
-rw-r--r--paramiko/logging22.py2
-rw-r--r--paramiko/message.py4
-rw-r--r--paramiko/packet.py6
-rw-r--r--paramiko/pipe.py2
-rw-r--r--paramiko/pkey.py2
-rw-r--r--paramiko/primes.py2
-rw-r--r--paramiko/resource.py2
-rw-r--r--paramiko/rng_posix.py10
-rw-r--r--paramiko/rsakey.py2
-rw-r--r--paramiko/server.py2
-rw-r--r--paramiko/sftp.py2
-rw-r--r--paramiko/sftp_attr.py2
-rw-r--r--paramiko/sftp_client.py135
-rw-r--r--paramiko/sftp_file.py2
-rw-r--r--paramiko/sftp_handle.py2
-rw-r--r--paramiko/sftp_server.py2
-rw-r--r--paramiko/sftp_si.py2
-rw-r--r--paramiko/ssh_exception.py2
-rw-r--r--paramiko/transport.py197
-rw-r--r--paramiko/util.py38
-rw-r--r--setup.py10
-rw-r--r--setup_helper.py2
-rwxr-xr-xtest.py2
-rw-r--r--tests/loop.py2
-rw-r--r--tests/stub_sftp.py2
-rw-r--r--tests/test_auth.py2
-rw-r--r--tests/test_buffered_pipe.py2
-rw-r--r--tests/test_client.py40
-rwxr-xr-xtests/test_file.py2
-rw-r--r--tests/test_hostkeys.py2
-rw-r--r--tests/test_kex.py2
-rw-r--r--tests/test_message.py2
-rw-r--r--tests/test_packetizer.py2
-rw-r--r--tests/test_pkey.py2
-rwxr-xr-xtests/test_sftp.py58
-rw-r--r--tests/test_sftp_big.py2
-rw-r--r--tests/test_transport.py33
-rw-r--r--tests/test_util.py2
222 files changed, 8663 insertions, 7377 deletions
diff --git a/PKG-INFO b/PKG-INFO
index f40d53f..b94ab07 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.0
Name: paramiko
-Version: 1.7.4
+Version: 1.7.6
Summary: SSH2 protocol library
Home-page: http://www.lag.net/paramiko/
Author: Robey Pointer
-Author-email: robey@lag.net
+Author-email: robeypointer@gmail.com
License: LGPL
-Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.4.zip
+Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.6.zip
Description:
This is a library for making SSH2 connections (client or server).
Emphasis is on using SSH2 as an alternative to SSL for making secure
diff --git a/README b/README
index 6a4c69d..9c6532d 100644
--- a/README
+++ b/README
@@ -4,15 +4,15 @@ paramiko
========
:Paramiko: Python SSH module
-:Copyright: Copyright (c) 2003-2008 Robey Pointer <robey@lag.net>
+:Copyright: Copyright (c) 2003-2009 Robey Pointer <robeypointer@gmail.com>
:License: LGPL
:Homepage: http://www.lag.net/paramiko/
-paramiko 1.7.4
+paramiko 1.7.6
==============
-"Desmond" release, 06 july 2008
+"Fanny" release, 1 november 2009
What
diff --git a/demos/demo.py b/demos/demo.py
index c8346ce..05524d3 100755
--- a/demos/demo.py
+++ b/demos/demo.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/demos/demo_server.py b/demos/demo_server.py
index e7b0e61..4972928 100755..100644
--- a/demos/demo_server.py
+++ b/demos/demo_server.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/demos/demo_sftp.py b/demos/demo_sftp.py
index a823fb3..992615f 100755
--- a/demos/demo_sftp.py
+++ b/demos/demo_sftp.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/demos/demo_simple.py b/demos/demo_simple.py
index 5bcc214..231da8d 100755
--- a/demos/demo_simple.py
+++ b/demos/demo_simple.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -59,43 +59,26 @@ if username == '':
password = getpass.getpass('Password for %s@%s: ' % (username, hostname))
-# get host key, if we know one
-hostkeytype = None
-hostkey = None
+# now, connect and use paramiko Client to negotiate SSH2 across the connection
try:
- host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
-except IOError:
- try:
- # try ~/ssh/ too, because windows can't have a folder named ~/.ssh/
- host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/ssh/known_hosts'))
- except IOError:
- print '*** Unable to open host keys file'
- host_keys = {}
-
-if host_keys.has_key(hostname):
- hostkeytype = host_keys[hostname].keys()[0]
- hostkey = host_keys[hostname][hostkeytype]
- print 'Using host key of type %s' % hostkeytype
-
-
-# now, connect and use paramiko Transport to negotiate SSH2 across the connection
-try:
- t = paramiko.Transport((hostname, port))
- t.connect(username=username, password=password, hostkey=hostkey)
- chan = t.open_session()
- chan.get_pty()
- chan.invoke_shell()
+ client = paramiko.SSHClient()
+ client.load_system_host_keys()
+ client.set_missing_host_key_policy(paramiko.WarningPolicy)
+ print '*** Connecting...'
+ client.connect(hostname, port, username, password)
+ chan = client.invoke_shell()
+ print repr(client.get_transport())
print '*** Here we go!'
print
interactive.interactive_shell(chan)
chan.close()
- t.close()
+ client.close()
except Exception, e:
print '*** Caught exception: %s: %s' % (e.__class__, e)
traceback.print_exc()
try:
- t.close()
+ client.close()
except:
pass
sys.exit(1)
diff --git a/demos/forward.py b/demos/forward.py
index 33c98ab..4e10785 100755..100644
--- a/demos/forward.py
+++ b/demos/forward.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/demos/interactive.py b/demos/interactive.py
index b80e661..4cbc617 100644
--- a/demos/interactive.py
+++ b/demos/interactive.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/demos/rforward.py b/demos/rforward.py
index 810fea6..ef4c532 100755
--- a/demos/rforward.py
+++ b/demos/rforward.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2008 Robey Pointer <robey@lag.net>
+# Copyright (C) 2008 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
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">
diff --git a/paramiko.egg-info/PKG-INFO b/paramiko.egg-info/PKG-INFO
index f40d53f..b94ab07 100644
--- a/paramiko.egg-info/PKG-INFO
+++ b/paramiko.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.0
Name: paramiko
-Version: 1.7.4
+Version: 1.7.6
Summary: SSH2 protocol library
Home-page: http://www.lag.net/paramiko/
Author: Robey Pointer
-Author-email: robey@lag.net
+Author-email: robeypointer@gmail.com
License: LGPL
-Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.4.zip
+Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.6.zip
Description:
This is a library for making SSH2 connections (client or server).
Emphasis is on using SSH2 as an alternative to SSL for making secure
diff --git a/paramiko.egg-info/SOURCES.txt b/paramiko.egg-info/SOURCES.txt
index 40a1c7d..2a1510f 100644
--- a/paramiko.egg-info/SOURCES.txt
+++ b/paramiko.egg-info/SOURCES.txt
@@ -155,6 +155,7 @@ docs/paramiko.transport-pysrc.html
docs/paramiko.transport.ChannelMap-class.html
docs/paramiko.util-module.html
docs/paramiko.util-pysrc.html
+docs/paramiko.util.Counter-class.html
docs/paramiko.util.PFilter-class.html
docs/paramiko.util.enumerate-class.html
docs/paramiko.win_pageant-module.html
@@ -263,4 +264,4 @@ tests/test_rsa_password.key
tests/test_sftp.py
tests/test_sftp_big.py
tests/test_transport.py
-tests/test_util.py
+tests/test_util.py \ No newline at end of file
diff --git a/paramiko/__init__.py b/paramiko/__init__.py
index 9a8caec..ac0d559 100644
--- a/paramiko/__init__.py
+++ b/paramiko/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2008 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -47,9 +47,9 @@ released under the GNU Lesser General Public License (LGPL).
Website: U{http://www.lag.net/paramiko/}
-@version: 1.7.4 (Desmond)
+@version: 1.7.6 (Fanny)
@author: Robey Pointer
-@contact: robey@lag.net
+@contact: robeypointer@gmail.com
@license: GNU Lesser General Public License (LGPL)
"""
@@ -59,10 +59,10 @@ if sys.version_info < (2, 2):
raise RuntimeError('You need python 2.2 for this module.')
-__author__ = "Robey Pointer <robey@lag.net>"
-__date__ = "06 Jul 2008"
-__version__ = "1.7.4 (Desmond)"
-__version_info__ = (1, 7, 4)
+__author__ = "Robey Pointer <robeypointer@gmail.com>"
+__date__ = "1 Nov 2009"
+__version__ = "1.7.6 (Fanny)"
+__version_info__ = (1, 7, 6)
__license__ = "GNU Lesser General Public License (LGPL)"
diff --git a/paramiko/auth_handler.py b/paramiko/auth_handler.py
index 39a0194..0f2e4f6 100644
--- a/paramiko/auth_handler.py
+++ b/paramiko/auth_handler.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -363,7 +363,7 @@ class AuthHandler (object):
self.transport._log(DEBUG, 'Methods: ' + str(authlist))
self.transport.saved_exception = PartialAuthentication(authlist)
elif self.auth_method not in authlist:
- self.transport._log(INFO, 'Authentication type (%s) not permitted.' % self.auth_method)
+ self.transport._log(DEBUG, 'Authentication type (%s) not permitted.' % self.auth_method)
self.transport._log(DEBUG, 'Allowed methods: ' + str(authlist))
self.transport.saved_exception = BadAuthenticationType('Bad authentication type', authlist)
else:
diff --git a/paramiko/ber.py b/paramiko/ber.py
index 9d8ddfa..19568dd 100644
--- a/paramiko/ber.py
+++ b/paramiko/ber.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/buffered_pipe.py b/paramiko/buffered_pipe.py
index ae3d9d6..b19d74b 100644
--- a/paramiko/buffered_pipe.py
+++ b/paramiko/buffered_pipe.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/channel.py b/paramiko/channel.py
index 910a03c..4694eef 100644
--- a/paramiko/channel.py
+++ b/paramiko/channel.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -90,6 +90,7 @@ class Channel (object):
self.logger = util.get_logger('paramiko.transport')
self._pipe = None
self.event = threading.Event()
+ self.event_ready = False
self.combine_stderr = False
self.exit_status = -1
self.origin_addr = None
@@ -152,7 +153,7 @@ class Channel (object):
# pixel height, width (usually useless)
m.add_int(0).add_int(0)
m.add_string('')
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
@@ -179,7 +180,7 @@ class Channel (object):
m.add_int(self.remote_chanid)
m.add_string('shell')
m.add_boolean(1)
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
@@ -207,7 +208,7 @@ class Channel (object):
m.add_string('exec')
m.add_boolean(True)
m.add_string(command)
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
@@ -234,7 +235,7 @@ class Channel (object):
m.add_string('subsystem')
m.add_boolean(True)
m.add_string(subsystem)
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
@@ -261,7 +262,7 @@ class Channel (object):
m.add_int(width)
m.add_int(height)
m.add_int(0).add_int(0)
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
@@ -291,10 +292,8 @@ class Channel (object):
@since: 1.2
"""
- while True:
- if self.closed or self.status_event.isSet():
- break
- self.status_event.wait(0.1)
+ self.status_event.wait()
+ assert self.status_event.isSet()
return self.exit_status
def send_exit_status(self, status):
@@ -376,7 +375,7 @@ class Channel (object):
m.add_string(auth_protocol)
m.add_string(auth_cookie)
m.add_int(screen_number)
- self.event.clear()
+ self._event_pending()
self.transport._send_user_message(m)
self._wait_for_event()
self.transport._set_x11_handler(handler)
@@ -919,9 +918,10 @@ class Channel (object):
self.out_max_packet_size = max(max_packet_size, MIN_PACKET_SIZE)
self.active = 1
self._log(DEBUG, 'Max packet out: %d bytes' % max_packet_size)
-
+
def _request_success(self, m):
self._log(DEBUG, 'Sesch channel %d request ok' % self.chanid)
+ self.event_ready = True
self.event.set()
return
@@ -1069,17 +1069,19 @@ class Channel (object):
def _log(self, level, msg, *args):
self.logger.log(level, "[chan " + self._name + "] " + msg, *args)
+ def _event_pending(self):
+ self.event.clear()
+ self.event_ready = False
+
def _wait_for_event(self):
- while True:
- self.event.wait(0.1)
- if self.event.isSet():
- return
- if self.closed:
- e = self.transport.get_exception()
- if e is None:
- e = SSHException('Channel closed.')
- raise e
- return
+ self.event.wait()
+ assert self.event.isSet()
+ if self.event_ready:
+ return
+ e = self.transport.get_exception()
+ if e is None:
+ e = SSHException('Channel closed.')
+ raise e
def _set_closed(self):
# you are holding the lock.
@@ -1087,6 +1089,9 @@ class Channel (object):
self.in_buffer.close()
self.in_stderr_buffer.close()
self.out_buffer_cv.notifyAll()
+ # Notify any waiters that we are closed
+ self.event.set()
+ self.status_event.set()
if self._pipe is not None:
self._pipe.set_forever()
diff --git a/paramiko/client.py b/paramiko/client.py
index 7870ea9..023b405 100644
--- a/paramiko/client.py
+++ b/paramiko/client.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -36,6 +36,8 @@ from paramiko.ssh_exception import SSHException, BadHostKeyException
from paramiko.transport import Transport
+SSH_PORT = 22
+
class MissingHostKeyPolicy (object):
"""
Interface for defining the policy that L{SSHClient} should use when the
@@ -43,10 +45,10 @@ class MissingHostKeyPolicy (object):
application's keys. Pre-made classes implement policies for automatically
adding the key to the application's L{HostKeys} object (L{AutoAddPolicy}),
and for automatically rejecting the key (L{RejectPolicy}).
-
+
This function may be used to ask the user to verify the key, for example.
"""
-
+
def missing_host_key(self, client, hostname, key):
"""
Called when an L{SSHClient} receives a server key for a server that
@@ -62,7 +64,7 @@ class AutoAddPolicy (MissingHostKeyPolicy):
Policy for automatically adding the hostname and new host key to the
local L{HostKeys} object, and saving it. This is used by L{SSHClient}.
"""
-
+
def missing_host_key(self, client, hostname, key):
client._host_keys.add(hostname, key.get_name(), key)
if client._host_keys_filename is not None:
@@ -76,7 +78,7 @@ class RejectPolicy (MissingHostKeyPolicy):
Policy for automatically rejecting the unknown hostname & key. This is
used by L{SSHClient}.
"""
-
+
def missing_host_key(self, client, hostname, key):
client._log(DEBUG, 'Rejecting %s host key for %s: %s' %
(key.get_name(), hostname, hexlify(key.get_fingerprint())))
@@ -98,16 +100,16 @@ class SSHClient (object):
A high-level representation of a session with an SSH server. This class
wraps L{Transport}, L{Channel}, and L{SFTPClient} to take care of most
aspects of authenticating and opening channels. A typical use case is::
-
+
client = SSHClient()
client.load_system_host_keys()
client.connect('ssh.example.com')
stdin, stdout, stderr = client.exec_command('ls -l')
-
+
You may pass in explicit overrides for authentication and server host key
checking. The default mechanism is to try to use local key files or an
SSH agent (if one is running).
-
+
@since: 1.6
"""
@@ -121,16 +123,16 @@ class SSHClient (object):
self._log_channel = None
self._policy = RejectPolicy()
self._transport = None
-
+
def load_system_host_keys(self, filename=None):
"""
Load host keys from a system (read-only) file. Host keys read with
this method will not be saved back by L{save_host_keys}.
-
+
This method can be called multiple times. Each new set of host keys
will be merged with the existing set (new replacing old if there are
conflicts).
-
+
If C{filename} is left as C{None}, an attempt will be made to read
keys from the user's local "known hosts" file, as used by OpenSSH,
and no exception will be raised if the file can't be read. This is
@@ -138,7 +140,7 @@ class SSHClient (object):
@param filename: the filename to read, or C{None}
@type filename: str
-
+
@raise IOError: if a filename was provided and the file could not be
read
"""
@@ -151,7 +153,7 @@ class SSHClient (object):
pass
return
self._system_host_keys.load(filename)
-
+
def load_host_keys(self, filename):
"""
Load host keys from a local host-key file. Host keys read with this
@@ -159,11 +161,11 @@ class SSHClient (object):
but will be saved back by L{save_host_keys} (so they can be modified).
The missing host key policy L{AutoAddPolicy} adds keys to this set and
saves them, when connecting to a previously-unknown server.
-
+
This method can be called multiple times. Each new set of host keys
will be merged with the existing set (new replacing old if there are
conflicts). When automatically saving, the last hostname is used.
-
+
@param filename: the filename to read
@type filename: str
@@ -171,16 +173,16 @@ class SSHClient (object):
"""
self._host_keys_filename = filename
self._host_keys.load(filename)
-
+
def save_host_keys(self, filename):
"""
Save the host keys back to a file. Only the host keys loaded with
L{load_host_keys} (plus any added directly) will be saved -- not any
host keys loaded with L{load_system_host_keys}.
-
+
@param filename: the filename to save to
@type filename: str
-
+
@raise IOError: if the file could not be written
"""
f = open(filename, 'w')
@@ -189,17 +191,17 @@ class SSHClient (object):
for keytype, key in keys.iteritems():
f.write('%s %s %s\n' % (hostname, keytype, key.get_base64()))
f.close()
-
+
def get_host_keys(self):
"""
Get the local L{HostKeys} object. This can be used to examine the
local host keys or change them.
-
+
@return: the local host keys
@rtype: L{HostKeys}
"""
return self._host_keys
-
+
def set_log_channel(self, name):
"""
Set the channel for logging. The default is C{"paramiko.transport"}
@@ -209,21 +211,21 @@ class SSHClient (object):
@type name: str
"""
self._log_channel = name
-
+
def set_missing_host_key_policy(self, policy):
"""
Set the policy to use when connecting to a server that doesn't have a
host key in either the system or local L{HostKeys} objects. The
default policy is to reject all unknown servers (using L{RejectPolicy}).
You may substitute L{AutoAddPolicy} or write your own policy class.
-
+
@param policy: the policy to use when receiving a host key from a
previously-unknown server
@type policy: L{MissingHostKeyPolicy}
"""
self._policy = policy
- def connect(self, hostname, port=22, username=None, password=None, pkey=None,
+ def connect(self, hostname, port=SSH_PORT, username=None, password=None, pkey=None,
key_filename=None, timeout=None, allow_agent=True, look_for_keys=True):
"""
Connect to an SSH server and authenticate to it. The server's host key
@@ -232,14 +234,14 @@ class SSHClient (object):
is not found in either set of host keys, the missing host key policy
is used (see L{set_missing_host_key_policy}). The default policy is
to reject the key and raise an L{SSHException}.
-
+
Authentication is attempted in the following order of priority:
-
+
- The C{pkey} or C{key_filename} passed in (if any)
- Any key we can find through an SSH agent
- Any "id_rsa" or "id_dsa" key discoverable in C{~/.ssh/}
- Plain username/password auth, if a password was given
-
+
If a private key requires a password to unlock it, and a password is
passed in, that password will be used to attempt to unlock the key.
@@ -273,39 +275,49 @@ class SSHClient (object):
establishing an SSH session
@raise socket.error: if a socket error occurred while connecting
"""
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
+ if socktype == socket.SOCK_STREAM:
+ af = family
+ addr = sockaddr
+ break
+ else:
+ raise SSHException('No suitable address family for %s' % hostname)
+ sock = socket.socket(af, socket.SOCK_STREAM)
if timeout is not None:
try:
sock.settimeout(timeout)
except:
pass
-
- sock.connect((hostname, port))
+ sock.connect(addr)
t = self._transport = Transport(sock)
if self._log_channel is not None:
t.set_log_channel(self._log_channel)
t.start_client()
ResourceManager.register(self, t)
-
+
server_key = t.get_remote_server_key()
keytype = server_key.get_name()
-
- our_server_key = self._system_host_keys.get(hostname, {}).get(keytype, None)
+
+ if port == SSH_PORT:
+ server_hostkey_name = hostname
+ else:
+ server_hostkey_name = "[%s]:%d" % (hostname, port)
+ our_server_key = self._system_host_keys.get(server_hostkey_name, {}).get(keytype, None)
if our_server_key is None:
- our_server_key = self._host_keys.get(hostname, {}).get(keytype, None)
+ our_server_key = self._host_keys.get(server_hostkey_name, {}).get(keytype, None)
if our_server_key is None:
# will raise exception if the key is rejected; let that fall out
- self._policy.missing_host_key(self, hostname, server_key)
+ self._policy.missing_host_key(self, server_hostkey_name, server_key)
# if the callback returns, assume the key is ok
our_server_key = server_key
-
+
if server_key != our_server_key:
raise BadHostKeyException(hostname, server_key, our_server_key)
if username is None:
username = getpass.getuser()
-
+
if key_filename is None:
key_filenames = []
elif isinstance(key_filename, (str, unicode)):
@@ -313,7 +325,7 @@ class SSHClient (object):
else:
key_filenames = key_filename
self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
-
+
def close(self):
"""
Close this SSHClient and its underlying L{Transport}.
@@ -329,7 +341,7 @@ class SSHClient (object):
the requested command is executed. The command's input and output
streams are returned as python C{file}-like objects representing
stdin, stdout, and stderr.
-
+
@param command: the command to execute
@type command: str
@param bufsize: interpreted the same way as by the built-in C{file()} function in python
@@ -351,7 +363,7 @@ class SSHClient (object):
Start an interactive shell session on the SSH server. A new L{Channel}
is opened and connected to a pseudo-terminal using the requested
terminal type and size.
-
+
@param term: the terminal type to emulate (for example, C{"vt100"})
@type term: str
@param width: the width (in characters) of the terminal window
@@ -360,47 +372,47 @@ class SSHClient (object):
@type height: int
@return: a new channel connected to the remote shell
@rtype: L{Channel}
-
+
@raise SSHException: if the server fails to invoke a shell
"""
chan = self._transport.open_session()
chan.get_pty(term, width, height)
chan.invoke_shell()
return chan
-
+
def open_sftp(self):
"""
Open an SFTP session on the SSH server.
-
+
@return: a new SFTP session object
@rtype: L{SFTPClient}
"""
return self._transport.open_sftp_client()
-
+
def get_transport(self):
"""
Return the underlying L{Transport} object for this SSH connection.
This can be used to perform lower-level tasks, like opening specific
kinds of channels.
-
+
@return: the Transport for this connection
@rtype: L{Transport}
"""
return self._transport
-
+
def _auth(self, username, password, pkey, key_filenames, allow_agent, look_for_keys):
"""
Try, in order:
-
+
- The key passed in, if one was passed in.
- Any key we can find through an SSH agent (if allowed).
- Any "id_rsa" or "id_dsa" key discoverable in ~/.ssh/ (if allowed).
- Plain username/password auth, if a password was given.
-
+
(The password might be needed to unlock a private key.)
"""
saved_exception = None
-
+
if pkey is not None:
try:
self._log(DEBUG, 'Trying SSH key %s' % hexlify(pkey.get_fingerprint()))
@@ -418,7 +430,7 @@ class SSHClient (object):
return
except SSHException, e:
saved_exception = e
-
+
if allow_agent:
for key in Agent().get_keys():
try:
@@ -442,7 +454,7 @@ class SSHClient (object):
keyfiles.append((RSAKey, rsa_key))
if os.path.isfile(dsa_key):
keyfiles.append((DSSKey, dsa_key))
-
+
if not look_for_keys:
keyfiles = []
@@ -456,7 +468,7 @@ class SSHClient (object):
saved_exception = e
except IOError, e:
saved_exception = e
-
+
if password is not None:
try:
self._transport.auth_password(username, password)
diff --git a/paramiko/common.py b/paramiko/common.py
index f4a4d81..7a37463 100644
--- a/paramiko/common.py
+++ b/paramiko/common.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/compress.py b/paramiko/compress.py
index 08fffb1..40b430f 100644
--- a/paramiko/compress.py
+++ b/paramiko/compress.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/config.py b/paramiko/config.py
index 1e3d680..2a2cbff 100644
--- a/paramiko/config.py
+++ b/paramiko/config.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -26,28 +26,28 @@ import fnmatch
class SSHConfig (object):
"""
Representation of config information as stored in the format used by
- OpenSSH. Queries can be made via L{lookup}. The format is described in
- OpenSSH's C{ssh_config} man page. This class is provided primarily as a
- convenience to posix users (since the OpenSSH format is a de-facto
+ OpenSSH. Queries can be made via L{lookup}. The format is described in
+ OpenSSH's C{ssh_config} 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.
-
+
@since: 1.6
"""
-
+
def __init__(self):
"""
Create a new OpenSSH config object.
"""
self._config = [ { 'host': '*' } ]
-
+
def parse(self, file_obj):
"""
Read an OpenSSH config from the given file object.
-
+
@param file_obj: a file-like object to read the config file from
@type file_obj: file
"""
- config = self._config[0]
+ configs = [self._config[0]]
for line in file_obj:
line = line.rstrip('\n').lstrip()
if (line == '') or (line[0] == '#'):
@@ -66,15 +66,20 @@ class SSHConfig (object):
value = line[i:].lstrip()
if key == 'host':
- # do we have a pre-existing host config to append to?
- matches = [c for c in self._config if c['host'] == value]
- if len(matches) > 0:
- config = matches[0]
- else:
- config = { 'host': value }
- self._config.append(config)
+ del configs[:]
+ # the value may be multiple hosts, space-delimited
+ for host in value.split():
+ # do we have a pre-existing host config to append to?
+ matches = [c for c in self._config if c['host'] == host]
+ if len(matches) > 0:
+ configs.append(matches[0])
+ else:
+ config = { 'host': host }
+ self._config.append(config)
+ configs.append(config)
else:
- config[key] = value
+ for config in configs:
+ config[key] = value
def lookup(self, hostname):
"""
@@ -83,13 +88,13 @@ class SSHConfig (object):
The host-matching rules of OpenSSH's C{ssh_config} 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 C{"Port"} is set under C{"Host *"}
+ precedence. In other words, if C{"Port"} is set under C{"Host *"}
and also C{"Host *.example.com"}, and the lookup is for
C{"ssh.example.com"}, then the port entry for C{"Host *.example.com"}
will win out.
The keys in the returned dict are all normalized to lowercase (look for
- C{"port"}, not C{"Port"}. No other processing is done to the keys or
+ C{"port"}, not C{"Port"}. No other processing is done to the keys or
values.
@param hostname: the hostname to lookup
diff --git a/paramiko/dsskey.py b/paramiko/dsskey.py
index 9f381d2..eecfa69 100644
--- a/paramiko/dsskey.py
+++ b/paramiko/dsskey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/file.py b/paramiko/file.py
index 7db4401..d4aec8e 100644
--- a/paramiko/file.py
+++ b/paramiko/file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/hostkeys.py b/paramiko/hostkeys.py
index 0c0ac8c..9ceef43 100644
--- a/paramiko/hostkeys.py
+++ b/paramiko/hostkeys.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -33,7 +33,7 @@ class HostKeyEntry:
"""
Representation of a line in an OpenSSH-style "known hosts" file.
"""
-
+
def __init__(self, hostnames=None, key=None):
self.valid = (hostnames is not None) and (key is not None)
self.hostnames = hostnames
@@ -53,9 +53,10 @@ class HostKeyEntry:
@type line: str
"""
fields = line.split(' ')
- if len(fields) != 3:
+ if len(fields) < 3:
# Bad number of fields
return None
+ fields = fields[:3]
names, keytype, key = fields
names = names.split(',')
@@ -82,7 +83,7 @@ class HostKeyEntry:
return '%s %s %s\n' % (','.join(self.hostnames), self.key.get_name(),
self.key.get_base64())
return None
-
+
def __repr__(self):
return '<HostKeyEntry %r: %r>' % (self.hostnames, self.key)
@@ -92,18 +93,18 @@ class HostKeys (UserDict.DictMixin):
Representation of an openssh-style "known hosts" file. Host keys can be
read from one or more files, and then individual hosts can be looked up to
verify server keys during SSH negotiation.
-
+
A HostKeys object can be treated like a dict; any dict lookup is equivalent
to calling L{lookup}.
-
+
@since: 1.5.3
"""
-
+
def __init__(self, filename=None):
"""
Create a new HostKeys object, optionally loading keys from an openssh
style host-key file.
-
+
@param filename: filename to load host keys from, or C{None}
@type filename: str
"""
@@ -111,12 +112,12 @@ class HostKeys (UserDict.DictMixin):
self._entries = []
if filename is not None:
self.load(filename)
-
+
def add(self, hostname, keytype, key):
"""
Add a host key entry to the table. Any existing entry for a
C{(hostname, keytype)} pair will be replaced.
-
+
@param hostname: the hostname (or IP) to add
@type hostname: str
@param keytype: key type (C{"ssh-rsa"} or C{"ssh-dss"})
@@ -129,21 +130,21 @@ class HostKeys (UserDict.DictMixin):
e.key = key
return
self._entries.append(HostKeyEntry([hostname], key))
-
+
def load(self, filename):
"""
Read a file of known SSH host keys, in the format used by openssh.
This type of file unfortunately doesn't exist on Windows, but on
posix, it will usually be stored in
C{os.path.expanduser("~/.ssh/known_hosts")}.
-
+
If this method is called multiple times, the host keys are merged,
not cleared. So multiple calls to C{load} will just call L{add},
replacing any existing entries and adding new ones.
-
+
@param filename: name of the file to read host keys from
@type filename: str
-
+
@raise IOError: if there was an error reading the file
"""
f = open(filename, 'r')
@@ -155,19 +156,19 @@ class HostKeys (UserDict.DictMixin):
if e is not None:
self._entries.append(e)
f.close()
-
+
def save(self, filename):
"""
Save host keys into a file, in the format used by openssh. The order of
keys in the file will be preserved when possible (if these keys were
loaded from a file originally). The single exception is that combined
lines will be split into individual key lines, which is arguably a bug.
-
+
@param filename: name of the file to write
@type filename: str
-
+
@raise IOError: if there was an error writing the file
-
+
@since: 1.6.1
"""
f = open(filename, 'w')
@@ -182,7 +183,7 @@ class HostKeys (UserDict.DictMixin):
Find a hostkey entry for a given hostname or IP. If no entry is found,
C{None} is returned. Otherwise a dictionary of keytype to key is
returned. The keytype will be either C{"ssh-rsa"} or C{"ssh-dss"}.
-
+
@param hostname: the hostname (or IP) to lookup
@type hostname: str
@return: keys associated with this host (or C{None})
@@ -193,13 +194,13 @@ class HostKeys (UserDict.DictMixin):
self._hostname = hostname
self._entries = entries
self._hostkeys = hostkeys
-
+
def __getitem__(self, key):
for e in self._entries:
if e.key.get_name() == key:
return e.key
raise KeyError(key)
-
+
def __setitem__(self, key, val):
for e in self._entries:
if e.key is None:
@@ -213,7 +214,7 @@ class HostKeys (UserDict.DictMixin):
e = HostKeyEntry([hostname], val)
self._entries.append(e)
self._hostkeys._entries.append(e)
-
+
def keys(self):
return [e.key.get_name() for e in self._entries if e.key is not None]
@@ -225,12 +226,12 @@ class HostKeys (UserDict.DictMixin):
if len(entries) == 0:
return None
return SubDict(hostname, entries, self)
-
+
def check(self, hostname, key):
"""
Return True if the given key is associated with the given hostname
in this dictionary.
-
+
@param hostname: hostname (or IP) of the SSH server
@type hostname: str
@param key: the key to check
@@ -252,13 +253,13 @@ class HostKeys (UserDict.DictMixin):
Remove all host keys from the dictionary.
"""
self._entries = []
-
+
def __getitem__(self, key):
ret = self.lookup(key)
if ret is None:
raise KeyError(key)
return ret
-
+
def __setitem__(self, hostname, entry):
# don't use this please.
if len(entry) == 0:
@@ -273,7 +274,7 @@ class HostKeys (UserDict.DictMixin):
found = True
if not found:
self._entries.append(HostKeyEntry([hostname], entry[key_type]))
-
+
def keys(self):
# python 2.4 sets would be nice here.
ret = []
@@ -293,7 +294,7 @@ class HostKeys (UserDict.DictMixin):
"""
Return a "hashed" form of the hostname, as used by openssh when storing
hashed hostnames in the known_hosts file.
-
+
@param hostname: the hostname to hash
@type hostname: str
@param salt: optional salt to use when hashing (must be 20 bytes long)
diff --git a/paramiko/kex_gex.py b/paramiko/kex_gex.py
index 63a0c99..c6be638 100644
--- a/paramiko/kex_gex.py
+++ b/paramiko/kex_gex.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/kex_group1.py b/paramiko/kex_group1.py
index 843a6d8..4228dd9 100644
--- a/paramiko/kex_group1.py
+++ b/paramiko/kex_group1.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/logging22.py b/paramiko/logging22.py
index 9bf7656..ed1d891 100644
--- a/paramiko/logging22.py
+++ b/paramiko/logging22.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/message.py b/paramiko/message.py
index 1a5151c..366c43c 100644
--- a/paramiko/message.py
+++ b/paramiko/message.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -111,7 +111,7 @@ class Message (object):
"""
b = self.packet.read(n)
if len(b) < n:
- return '\x00'*n
+ return b + '\x00' * (n - len(b))
return b
def get_byte(self):
diff --git a/paramiko/packet.py b/paramiko/packet.py
index 4bde2f7..9072fbe 100644
--- a/paramiko/packet.py
+++ b/paramiko/packet.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -268,11 +268,11 @@ class Packetizer (object):
Read a line from the socket. We assume no data is pending after the
line, so it's okay to attempt large reads.
"""
- buf = ''
+ buf = self.__remainder
while not '\n' in buf:
buf += self._read_timeout(timeout)
n = buf.index('\n')
- self.__remainder += buf[n+1:]
+ self.__remainder = buf[n+1:]
buf = buf[:n]
if (len(buf) > 0) and (buf[-1] == '\r'):
buf = buf[:-1]
diff --git a/paramiko/pipe.py b/paramiko/pipe.py
index 1cfed2d..37191ef 100644
--- a/paramiko/pipe.py
+++ b/paramiko/pipe.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/pkey.py b/paramiko/pkey.py
index 4e8b26b..bb8c83c 100644
--- a/paramiko/pkey.py
+++ b/paramiko/pkey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/primes.py b/paramiko/primes.py
index 7b35736..1cf7905 100644
--- a/paramiko/primes.py
+++ b/paramiko/primes.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/resource.py b/paramiko/resource.py
index a089754..0d5c82f 100644
--- a/paramiko/resource.py
+++ b/paramiko/resource.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/rng_posix.py b/paramiko/rng_posix.py
index 1e6d72c..c4c9691 100644
--- a/paramiko/rng_posix.py
+++ b/paramiko/rng_posix.py
@@ -43,7 +43,7 @@ def open_rng_device(device_path=None):
f = None
g = None
-
+
if device_path is None:
device_path = "/dev/urandom"
@@ -54,7 +54,7 @@ def open_rng_device(device_path=None):
f = open(device_path, "rb", 0)
except EnvironmentError:
raise error("Unable to open /dev/urandom")
-
+
# Open a second file descriptor for sanity checking later.
try:
g = open(device_path, "rb", 0)
@@ -65,17 +65,17 @@ def open_rng_device(device_path=None):
st = os.fstat(f.fileno()) # f
if stat.S_ISREG(st.st_mode) or not stat.S_ISCHR(st.st_mode):
raise error("/dev/urandom is not a character special device")
-
+
st = os.fstat(g.fileno()) # g
if stat.S_ISREG(st.st_mode) or not stat.S_ISCHR(st.st_mode):
raise error("/dev/urandom is not a character special device")
-
+
# Check that /dev/urandom always returns the number of bytes requested
x = f.read(20)
y = g.read(20)
if len(x) != 20 or len(y) != 20:
raise error("Error reading from /dev/urandom: input truncated")
-
+
# Check that different reads return different data
if x == y:
raise error("/dev/urandom is broken; returning identical data: %r == %r" % (x, y))
diff --git a/paramiko/rsakey.py b/paramiko/rsakey.py
index d72d175..a665279 100644
--- a/paramiko/rsakey.py
+++ b/paramiko/rsakey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/server.py b/paramiko/server.py
index bcaa4be..6424b63 100644
--- a/paramiko/server.py
+++ b/paramiko/server.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp.py b/paramiko/sftp.py
index 2296d85..a0b08e0 100644
--- a/paramiko/sftp.py
+++ b/paramiko/sftp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp_attr.py b/paramiko/sftp_attr.py
index 9c92862..26290be 100644
--- a/paramiko/sftp_attr.py
+++ b/paramiko/sftp_attr.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2006 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2006 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp_client.py b/paramiko/sftp_client.py
index b3d2d56..1f11075 100644
--- a/paramiko/sftp_client.py
+++ b/paramiko/sftp_client.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -23,6 +23,7 @@ Client-mode SFTP support.
from binascii import hexlify
import errno
import os
+import stat
import threading
import time
import weakref
@@ -104,27 +105,31 @@ class SFTPClient (BaseSFTP):
chan.invoke_subsystem('sftp')
return cls(chan)
from_transport = classmethod(from_transport)
-
+
def _log(self, level, msg, *args):
- super(SFTPClient, self)._log(level, "[chan %s] " + msg, *([ self.sock.get_name() ] + list(args)))
+ if isinstance(msg, list):
+ for m in msg:
+ super(SFTPClient, self)._log(level, "[chan %s] " + m, *([ self.sock.get_name() ] + list(args)))
+ else:
+ super(SFTPClient, self)._log(level, "[chan %s] " + msg, *([ self.sock.get_name() ] + list(args)))
def close(self):
"""
Close the SFTP session and its underlying channel.
-
+
@since: 1.4
"""
self._log(INFO, 'sftp session closed.')
self.sock.close()
-
+
def get_channel(self):
"""
Return the underlying L{Channel} object for this SFTP session. This
might be useful for doing things like setting a timeout on the channel.
-
+
@return: the SSH channel
@rtype: L{Channel}
-
+
@since: 1.7.1
"""
return self.sock
@@ -143,14 +148,14 @@ class SFTPClient (BaseSFTP):
@rtype: list of str
"""
return [f.filename for f in self.listdir_attr(path)]
-
+
def listdir_attr(self, path='.'):
"""
Return a list containing L{SFTPAttributes} objects corresponding to
files in the given C{path}. The list is in arbitrary order. It does
not include the special entries C{'.'} and C{'..'} even if they are
present in the folder.
-
+
The returned L{SFTPAttributes} objects will each have an additional
field: C{longname}, which may contain a formatted string of the file's
attributes, in unix format. The content of this string will probably
@@ -160,7 +165,7 @@ class SFTPClient (BaseSFTP):
@type path: str
@return: list of attributes
@rtype: list of L{SFTPAttributes}
-
+
@since: 1.2
"""
path = self._adjust_cwd(path)
@@ -201,7 +206,7 @@ class SFTPClient (BaseSFTP):
existing file), C{'a+'} for reading/appending. The python C{'b'} flag
is ignored, since SSH treats all files as binary. The C{'U'} flag is
supported in a compatible way.
-
+
Since 1.5.2, an C{'x'} flag indicates that the operation should only
succeed if the file was created and did not previously exist. This has
no direct mapping to python's file flags, but is commonly known as the
@@ -271,7 +276,7 @@ class SFTPClient (BaseSFTP):
@type oldpath: str
@param newpath: new name for the file or folder
@type newpath: str
-
+
@raise IOError: if C{newpath} is a folder, or something else goes
wrong
"""
@@ -384,7 +389,7 @@ class SFTPClient (BaseSFTP):
attr = SFTPAttributes()
attr.st_mode = mode
self._request(CMD_SETSTAT, path, attr)
-
+
def chown(self, path, uid, gid):
"""
Change the owner (C{uid}) and group (C{gid}) of a file. As with
@@ -433,7 +438,7 @@ class SFTPClient (BaseSFTP):
Change the size of the file specified by C{path}. This usually extends
or shrinks the size of the file, just like the C{truncate()} method on
python file objects.
-
+
@param path: path of the file to modify
@type path: str
@param size: the new size of the file
@@ -479,7 +484,7 @@ class SFTPClient (BaseSFTP):
@type path: str
@return: normalized form of the given path
@rtype: str
-
+
@raise IOError: if the path can't be resolved on the server
"""
path = self._adjust_cwd(path)
@@ -491,45 +496,51 @@ class SFTPClient (BaseSFTP):
if count != 1:
raise SFTPError('Realpath returned %d results' % count)
return _to_unicode(msg.get_string())
-
+
def chdir(self, path):
"""
Change the "current directory" of this SFTP session. Since 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.
-
+ to that path. You can pass in C{None} to stop using a current working
+ directory.
+
@param path: new current working directory
@type path: str
-
+
@raise IOError: if the requested path doesn't exist on the server
-
+
@since: 1.4
"""
- self._cwd = self.normalize(path)
-
+ if path is None:
+ self._cwd = None
+ return
+ if not stat.S_ISDIR(self.stat(path).st_mode):
+ raise SFTPError(errno.ENOTDIR, "%s: %s" % (os.strerror(errno.ENOTDIR), path))
+ self._cwd = self.normalize(path).encode('utf-8')
+
def getcwd(self):
"""
Return the "current working directory" for this SFTP session, as
emulated by paramiko. If no directory has been set with L{chdir},
this method will return C{None}.
-
+
@return: the current working directory on the server, or C{None}
@rtype: str
-
+
@since: 1.4
"""
return self._cwd
-
+
def put(self, localpath, remotepath, callback=None):
"""
Copy a local file (C{localpath}) to the SFTP server as C{remotepath}.
Any exception raised by operations will be passed through. This
method is primarily provided as a convenience.
-
+
The SFTP operations use pipelining for speed.
-
+
@param localpath: the local file to copy
@type localpath: str
@param remotepath: the destination path on the SFTP server
@@ -541,35 +552,39 @@ class SFTPClient (BaseSFTP):
@return: an object containing attributes about the given file
(since 1.7.4)
@rtype: SFTPAttributes
-
+
@since: 1.4
"""
file_size = os.stat(localpath).st_size
fl = file(localpath, 'rb')
- fr = self.file(remotepath, 'wb')
- fr.set_pipelined(True)
- size = 0
- while True:
- data = fl.read(32768)
- if len(data) == 0:
- break
- fr.write(data)
- size += len(data)
- if callback is not None:
- callback(size, file_size)
- fl.close()
- fr.close()
+ try:
+ fr = self.file(remotepath, 'wb')
+ fr.set_pipelined(True)
+ size = 0
+ try:
+ while True:
+ data = fl.read(32768)
+ if len(data) == 0:
+ break
+ fr.write(data)
+ size += len(data)
+ if callback is not None:
+ callback(size, file_size)
+ finally:
+ fr.close()
+ finally:
+ fl.close()
s = self.stat(remotepath)
if s.st_size != size:
raise IOError('size mismatch in put! %d != %d' % (s.st_size, size))
return s
-
+
def get(self, remotepath, localpath, callback=None):
"""
Copy a remote file (C{remotepath}) from the SFTP server to the local
host as C{localpath}. Any exception raised by operations will be
passed through. This method is primarily provided as a convenience.
-
+
@param remotepath: the remote file to copy
@type remotepath: str
@param localpath: the destination path on the local host
@@ -578,24 +593,28 @@ class SFTPClient (BaseSFTP):
transferred so far and the total bytes to be transferred
(since 1.7.4)
@type callback: function(int, int)
-
+
@since: 1.4
"""
fr = self.file(remotepath, 'rb')
file_size = self.stat(remotepath).st_size
fr.prefetch()
- fl = file(localpath, 'wb')
- size = 0
- while True:
- data = fr.read(32768)
- if len(data) == 0:
- break
- fl.write(data)
- size += len(data)
- if callback is not None:
- callback(size, file_size)
- fl.close()
- fr.close()
+ try:
+ fl = file(localpath, 'wb')
+ try:
+ size = 0
+ while True:
+ data = fr.read(32768)
+ if len(data) == 0:
+ break
+ fl.write(data)
+ size += len(data)
+ if callback is not None:
+ callback(size, file_size)
+ finally:
+ fl.close()
+ finally:
+ fr.close()
s = os.stat(localpath)
if s.st_size != size:
raise IOError('size mismatch in get! %d != %d' % (s.st_size, size))
@@ -607,7 +626,7 @@ class SFTPClient (BaseSFTP):
def _request(self, t, *arg):
num = self._async_request(type(None), t, *arg)
return self._read_response(num)
-
+
def _async_request(self, fileobj, t, *arg):
# this method may be called from other threads (prefetch)
self._lock.acquire()
@@ -684,7 +703,7 @@ class SFTPClient (BaseSFTP):
raise IOError(errno.EACCES, text)
else:
raise IOError(text)
-
+
def _adjust_cwd(self, path):
"""
Return an adjusted path if we're emulating a "current working
diff --git a/paramiko/sftp_file.py b/paramiko/sftp_file.py
index cfa7db1..8c5c7ac 100644
--- a/paramiko/sftp_file.py
+++ b/paramiko/sftp_file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp_handle.py b/paramiko/sftp_handle.py
index e976f43..a6cd44a 100644
--- a/paramiko/sftp_handle.py
+++ b/paramiko/sftp_handle.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp_server.py b/paramiko/sftp_server.py
index 099ac12..7cc6c0c 100644
--- a/paramiko/sftp_server.py
+++ b/paramiko/sftp_server.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/sftp_si.py b/paramiko/sftp_si.py
index 47dd25d..401a4e9 100644
--- a/paramiko/sftp_si.py
+++ b/paramiko/sftp_si.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/ssh_exception.py b/paramiko/ssh_exception.py
index e3120bb..68924d0 100644
--- a/paramiko/ssh_exception.py
+++ b/paramiko/ssh_exception.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/paramiko/transport.py b/paramiko/transport.py
index a18e05b..50e78e7 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -50,8 +50,12 @@ from paramiko.ssh_exception import SSHException, BadAuthenticationType, ChannelE
# i believe this on the standards track.
# PyCrypt compiled for Win32 can be downloaded from the HashTar homepage:
# http://nitace.bsd.uchicago.edu:8080/hashtar
-from Crypto.Cipher import Blowfish, AES, DES3
+from Crypto.Cipher import Blowfish, AES, DES3, ARC4
from Crypto.Hash import SHA, MD5
+try:
+ from Crypto.Util import Counter
+except ImportError:
+ from paramiko.util import Counter
# for thread cleanup
@@ -99,7 +103,7 @@ class SecurityOptions (object):
def _get_kex(self):
return self._transport._preferred_kex
-
+
def _get_compression(self):
return self._transport._preferred_compression
@@ -125,7 +129,7 @@ class SecurityOptions (object):
def _set_kex(self, x):
self._set('_preferred_kex', '_kex_info', x)
-
+
def _set_compression(self, x):
self._set('_preferred_compression', '_compression_info', x)
@@ -152,14 +156,14 @@ class ChannelMap (object):
self._map[chanid] = chan
finally:
self._lock.release()
-
+
def get(self, chanid):
self._lock.acquire()
try:
return self._map.get(chanid, None)
finally:
self._lock.release()
-
+
def delete(self, chanid):
self._lock.acquire()
try:
@@ -169,14 +173,14 @@ class ChannelMap (object):
pass
finally:
self._lock.release()
-
+
def values(self):
self._lock.acquire()
try:
return self._map.values()
finally:
self._lock.release()
-
+
def __len__(self):
self._lock.acquire()
try:
@@ -194,19 +198,24 @@ class Transport (threading.Thread):
"""
_PROTO_ID = '2.0'
- _CLIENT_ID = 'paramiko_1.7.4'
+ _CLIENT_ID = 'paramiko_1.7.6'
- _preferred_ciphers = ( 'aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc' )
+ _preferred_ciphers = ( 'aes128-ctr', 'aes256-ctr', 'aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc',
+ 'arcfour128', 'arcfour256' )
_preferred_macs = ( 'hmac-sha1', 'hmac-md5', 'hmac-sha1-96', 'hmac-md5-96' )
_preferred_keys = ( 'ssh-rsa', 'ssh-dss' )
_preferred_kex = ( 'diffie-hellman-group1-sha1', 'diffie-hellman-group-exchange-sha1' )
_preferred_compression = ( 'none', )
-
+
_cipher_info = {
+ 'aes128-ctr': { 'class': AES, 'mode': AES.MODE_CTR, 'block-size': 16, 'key-size': 16 },
+ 'aes256-ctr': { 'class': AES, 'mode': AES.MODE_CTR, 'block-size': 16, 'key-size': 32 },
'blowfish-cbc': { 'class': Blowfish, 'mode': Blowfish.MODE_CBC, 'block-size': 8, 'key-size': 16 },
'aes128-cbc': { 'class': AES, 'mode': AES.MODE_CBC, 'block-size': 16, 'key-size': 16 },
'aes256-cbc': { 'class': AES, 'mode': AES.MODE_CBC, 'block-size': 16, 'key-size': 32 },
'3des-cbc': { 'class': DES3, 'mode': DES3.MODE_CBC, 'block-size': 8, 'key-size': 24 },
+ 'arcfour128': { 'class': ARC4, 'mode': None, 'block-size': 8, 'key-size': 16 },
+ 'arcfour256': { 'class': ARC4, 'mode': None, 'block-size': 8, 'key-size': 32 },
}
_mac_info = {
@@ -225,7 +234,7 @@ class Transport (threading.Thread):
'diffie-hellman-group1-sha1': KexGroup1,
'diffie-hellman-group-exchange-sha1': KexGex,
}
-
+
_compression_info = {
# zlib@openssh.com is just zlib, but only turned on after a successful
# authentication. openssh servers may only offer this type because
@@ -266,7 +275,7 @@ class Transport (threading.Thread):
@param sock: a socket or socket-like object to create the session over.
@type sock: socket
"""
- if type(sock) is str:
+ if isinstance(sock, (str, unicode)):
# convert "host:port" into (host, port)
hl = sock.split(':', 1)
if len(hl) == 1:
@@ -276,10 +285,18 @@ class Transport (threading.Thread):
if type(sock) is tuple:
# connect to the given (host, port)
hostname, port = sock
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
+ if socktype == socket.SOCK_STREAM:
+ af = family
+ addr = sockaddr
+ break
+ else:
+ raise SSHException('No suitable address family for %s' % hostname)
+ sock = socket.socket(af, socket.SOCK_STREAM)
sock.connect((hostname, port))
# okay, normal socket-ish flow here...
threading.Thread.__init__(self)
+ self.setDaemon(True)
self.randpool = randpool
self.sock = sock
# Python < 2.3 doesn't have the settimeout method - RogerB
@@ -302,7 +319,7 @@ class Transport (threading.Thread):
self.session_id = None
self.host_key_type = None
self.host_key = None
-
+
# state used during negotiation
self.kex_engine = None
self.H = None
@@ -328,6 +345,7 @@ class Transport (threading.Thread):
self.saved_exception = None
self.clear_to_send = threading.Event()
self.clear_to_send_lock = threading.Lock()
+ self.clear_to_send_timeout = 30.0
self.log_name = 'paramiko.transport'
self.logger = util.get_logger(self.log_name)
self.packetizer.set_log(self.logger)
@@ -365,7 +383,7 @@ class Transport (threading.Thread):
out += ' (connecting)'
out += '>'
return out
-
+
def atfork(self):
"""
Terminate this Transport without closing the session. On posix
@@ -373,7 +391,7 @@ class Transport (threading.Thread):
and child will share the underlying socket, but only one process can
use the connection (without corrupting the session). Use this method
to clean up a Transport object without disrupting the other process.
-
+
@since: 1.5.3
"""
self.sock.close()
@@ -396,11 +414,11 @@ class Transport (threading.Thread):
Negotiate a new SSH2 session as a client. This is the first step after
creating a new L{Transport}. A separate thread is created for protocol
negotiation.
-
+
If an event is passed in, this method returns immediately. When
negotiation is done (successful or not), the given C{Event} will
be triggered. On failure, L{is_active} will return C{False}.
-
+
(Since 1.4) If C{event} is C{None}, this method will not return until
negotation is done. On success, the method returns normally.
Otherwise an SSHException is raised.
@@ -410,7 +428,7 @@ class Transport (threading.Thread):
L{auth_publickey <Transport.auth_publickey>}.
@note: L{connect} is a simpler method for connecting as a client.
-
+
@note: After calling this method (or L{start_server} or L{connect}),
you should no longer directly read from or write to the original
socket object.
@@ -447,11 +465,11 @@ class Transport (threading.Thread):
Negotiate a new SSH2 session as a server. This is the first step after
creating a new L{Transport} and setting up your server host key(s). A
separate thread is created for protocol negotiation.
-
+
If an event is passed in, this method returns immediately. When
negotiation is done (successful or not), the given C{Event} will
be triggered. On failure, L{is_active} will return C{False}.
-
+
(Since 1.4) If C{event} is C{None}, this method will not return until
negotation is done. On success, the method returns normally.
Otherwise an SSHException is raised.
@@ -514,7 +532,7 @@ class Transport (threading.Thread):
we are. Because this is used for signing, the key must contain private
key info, not just the public half. Only one key of each type (RSA or
DSS) is kept.
-
+
@param key: the host key to add, usually an L{RSAKey <rsakey.RSAKey>} or
L{DSSKey <dsskey.DSSKey>}.
@type key: L{PKey <pkey.PKey>}
@@ -564,7 +582,7 @@ class Transport (threading.Thread):
@return: True if a moduli file was successfully loaded; False
otherwise.
@rtype: bool
-
+
@note: This has no effect when used in client mode.
"""
Transport._modulus_pack = ModulusPack(randpool)
@@ -605,7 +623,7 @@ class Transport (threading.Thread):
C{str(key)} for the key string.
@raise SSHException: if no session is currently active.
-
+
@return: public key of the remote server
@rtype: L{PKey <pkey.PKey>}
"""
@@ -630,7 +648,7 @@ class Transport (threading.Thread):
@return: a new L{Channel}
@rtype: L{Channel}
-
+
@raise SSHException: if the request is rejected or the session ends
prematurely
"""
@@ -646,25 +664,25 @@ class Transport (threading.Thread):
@type src_addr: (str, int)
@return: a new L{Channel}
@rtype: L{Channel}
-
+
@raise SSHException: if the request is rejected or the session ends
prematurely
"""
return self.open_channel('x11', src_addr=src_addr)
-
+
def open_forwarded_tcpip_channel(self, (src_addr, src_port), (dest_addr, dest_port)):
"""
Request a new channel back to the client, of type C{"forwarded-tcpip"}.
This is used after a client has requested port forwarding, for sending
incoming connections back to the client.
-
+
@param src_addr: originator's address
@param src_port: originator's port
@param dest_addr: local (server) connected address
@param dest_port: local (server) connected port
"""
return self.open_channel('forwarded-tcpip', (dest_addr, dest_port), (src_addr, src_port))
-
+
def open_channel(self, kind, dest_addr=None, src_addr=None):
"""
Request a new channel to the server. L{Channel}s are socket-like
@@ -739,19 +757,19 @@ class Transport (threading.Thread):
"""
Ask the server to forward TCP connections from a listening port on
the server, across this SSH session.
-
+
If a handler is given, that handler is called from a different thread
whenever a forwarded connection arrives. The handler parameters are::
-
+
handler(channel, (origin_addr, origin_port), (server_addr, server_port))
-
+
where C{server_addr} and C{server_port} are the address and port that
the server was listening on.
-
+
If no handler is set, the default behavior is to send new incoming
forwarded connections into the accept queue, to be picked up via
L{accept}.
-
+
@param address: the address to bind when forwarding
@type address: str
@param port: the port to forward, or 0 to ask the server to allocate
@@ -761,7 +779,7 @@ class Transport (threading.Thread):
@type handler: function(Channel, (str, int), (str, int))
@return: the port # allocated by the server
@rtype: int
-
+
@raise SSHException: if the server refused the TCP forward request
"""
if not self.active:
@@ -785,7 +803,7 @@ class Transport (threading.Thread):
Ask the server to cancel a previous port-forwarding request. No more
connections to the given address & port will be forwarded across this
ssh connection.
-
+
@param address: the address to stop forwarding
@type address: str
@param port: the port to stop forwarding
@@ -795,7 +813,7 @@ class Transport (threading.Thread):
return
self._tcp_handler = None
self.global_request('cancel-tcpip-forward', (address, port), wait=True)
-
+
def open_sftp_client(self):
"""
Create an SFTP client channel from an open transport. On success,
@@ -858,7 +876,7 @@ class Transport (threading.Thread):
C{interval} seconds without sending any data over the connection, a
"keepalive" packet will be sent (and ignored by the remote host). This
can be useful to keep connections alive over a NAT, for example.
-
+
@param interval: seconds to wait before sending a keepalive packet (or
0 to disable keepalives).
@type interval: int
@@ -909,7 +927,7 @@ class Transport (threading.Thread):
Return the next channel opened by the client over this transport, in
server mode. If no channel is opened before the given timeout, C{None}
is returned.
-
+
@param timeout: seconds to wait for a channel, or C{None} to wait
forever
@type timeout: int
@@ -961,7 +979,7 @@ class Transport (threading.Thread):
@param pkey: a private key to use for authentication, if you want to
use private key authentication; otherwise C{None}.
@type pkey: L{PKey<pkey.PKey>}
-
+
@raise SSHException: if the SSH2 negotiation fails, the host key
supplied by the server is incorrect, or authentication fails.
"""
@@ -989,17 +1007,17 @@ class Transport (threading.Thread):
self.auth_publickey(username, pkey)
return
-
+
def get_exception(self):
"""
Return any exception that happened during the last server request.
This can be used to fetch more specific error information after using
calls like L{start_client}. The exception (if any) is cleared after
this call.
-
+
@return: an exception, or C{None} if there is no stored exception.
@rtype: Exception
-
+
@since: 1.1
"""
self.lock.acquire()
@@ -1031,7 +1049,7 @@ class Transport (threading.Thread):
self.subsystem_table[name] = (handler, larg, kwarg)
finally:
self.lock.release()
-
+
def is_authenticated(self):
"""
Return true if this session is active and authenticated.
@@ -1042,7 +1060,7 @@ class Transport (threading.Thread):
@rtype: bool
"""
return self.active and (self.auth_handler is not None) and self.auth_handler.is_authenticated()
-
+
def get_username(self):
"""
Return the username this connection is authenticated for. If the
@@ -1062,7 +1080,7 @@ class Transport (threading.Thread):
This will almost always fail. It may be useful for determining the
list of authentication types supported by the server, by catching the
L{BadAuthenticationType} exception raised.
-
+
@param username: the username to authenticate as
@type username: string
@return: list of auth types permissible for the next stage of
@@ -1073,7 +1091,7 @@ class Transport (threading.Thread):
by the server for this user
@raise SSHException: if the authentication failed due to a network
error
-
+
@since: 1.5
"""
if (not self.active) or (not self.initial_kex_done):
@@ -1087,7 +1105,7 @@ class Transport (threading.Thread):
"""
Authenticate to the server using a password. The username and password
are sent over an encrypted link.
-
+
If an C{event} is passed in, this method will return immediately, and
the event will be triggered once authentication succeeds or fails. On
success, L{is_authenticated} will return C{True}. On failure, you may
@@ -1096,7 +1114,7 @@ class Transport (threading.Thread):
Since 1.1, if no event is passed, this method will block until the
authentication succeeds or fails. On failure, an exception is raised.
Otherwise, the method simply returns.
-
+
Since 1.5, if no event is passed and C{fallback} is C{True} (the
default), if the server doesn't support plain password authentication
but does support so-called "keyboard-interactive" mode, an attempt
@@ -1105,11 +1123,11 @@ class Transport (threading.Thread):
made. This is useful for some recent Gentoo and Debian distributions,
which turn off plain password authentication in a misguided belief
that interactive authentication is "more secure". (It's not.)
-
+
If the server requires multi-step authentication (which is very rare),
this method will return a list of auth types permissible for the next
step. Otherwise, in the normal case, an empty list is returned.
-
+
@param username: the username to authenticate as
@type username: str
@param password: the password to authenticate with
@@ -1124,7 +1142,7 @@ class Transport (threading.Thread):
@return: list of auth types permissible for the next stage of
authentication (normally empty)
@rtype: list
-
+
@raise BadAuthenticationType: if password authentication isn't
allowed by the server for this user (and no event was passed in)
@raise AuthenticationException: if the authentication failed (and no
@@ -1170,12 +1188,12 @@ class Transport (threading.Thread):
"""
Authenticate to the server using a private key. The key is used to
sign data from the server, so it must include the private part.
-
+
If an C{event} is passed in, this method will return immediately, and
the event will be triggered once authentication succeeds or fails. On
success, L{is_authenticated} will return C{True}. On failure, you may
use L{get_exception} to get more detailed error information.
-
+
Since 1.1, if no event is passed, this method will block until the
authentication succeeds or fails. On failure, an exception is raised.
Otherwise, the method simply returns.
@@ -1194,7 +1212,7 @@ class Transport (threading.Thread):
@return: list of auth types permissible for the next stage of
authentication (normally empty)
@rtype: list
-
+
@raise BadAuthenticationType: if public-key authentication isn't
allowed by the server for this user (and no event was passed in)
@raise AuthenticationException: if the authentication failed (and no
@@ -1214,18 +1232,18 @@ class Transport (threading.Thread):
# caller wants to wait for event themselves
return []
return self.auth_handler.wait_for_response(my_event)
-
+
def auth_interactive(self, username, handler, submethods=''):
"""
Authenticate to the server interactively. A handler is used to answer
arbitrary questions from the server. On many servers, this is just a
dumb wrapper around PAM.
-
+
This method will block until the authentication succeeds or fails,
peroidically calling the handler asynchronously to get answers to
authentication questions. The handler may be called more than once
if the server continues to ask questions.
-
+
The handler is expected to be a callable that will handle calls of the
form: C{handler(title, instructions, prompt_list)}. The C{title} is
meant to be a dialog-window title, and the C{instructions} are user
@@ -1233,13 +1251,13 @@ class Transport (threading.Thread):
prompts, each prompt being a tuple of C{(str, bool)}. The string is
the prompt and the boolean indicates whether the user text should be
echoed.
-
+
A sample call would thus be:
C{handler('title', 'instructions', [('Password:', False)])}.
-
+
The handler should return a list or tuple of answers to the server's
questions.
-
+
If the server requires multi-step authentication (which is very rare),
this method will return a list of auth types permissible for the next
step. Otherwise, in the normal case, an empty list is returned.
@@ -1253,12 +1271,12 @@ class Transport (threading.Thread):
@return: list of auth types permissible for the next stage of
authentication (normally empty).
@rtype: list
-
+
@raise BadAuthenticationType: if public-key authentication isn't
allowed by the server for this user
@raise AuthenticationException: if the authentication failed
@raise SSHException: if there was a network error
-
+
@since: 1.5
"""
if (not self.active) or (not self.initial_kex_done):
@@ -1307,43 +1325,43 @@ class Transport (threading.Thread):
@type hexdump: bool
"""
self.packetizer.set_hexdump(hexdump)
-
+
def get_hexdump(self):
"""
Return C{True} if the transport is currently logging hex dumps of
protocol traffic.
-
+
@return: C{True} if hex dumps are being logged
@rtype: bool
-
+
@since: 1.4
"""
return self.packetizer.get_hexdump()
-
+
def use_compression(self, compress=True):
"""
Turn on/off compression. This will only have an affect before starting
the transport (ie before calling L{connect}, etc). By default,
compression is off since it negatively affects interactive sessions.
-
+
@param compress: C{True} to ask the remote client/server to compress
traffic; C{False} to refuse compression
@type compress: bool
-
+
@since: 1.5.2
"""
if compress:
self._preferred_compression = ( 'zlib@openssh.com', 'zlib', 'none' )
else:
self._preferred_compression = ( 'none', )
-
+
def getpeername(self):
"""
Return the address of the remote side of this Transport, if possible.
This is effectively a wrapper around C{'getpeername'} on the underlying
socket. If the socket-like object has no C{'getpeername'} method,
then C{("unknown", 0)} is returned.
-
+
@return: the address if the remote host, if known
@rtype: tuple(str, int)
"""
@@ -1359,7 +1377,7 @@ class Transport (threading.Thread):
### internals...
-
+
def _log(self, level, msg, *args):
if issubclass(type(msg), list):
for m in msg:
@@ -1392,6 +1410,7 @@ class Transport (threading.Thread):
send a message, but block if we're in key negotiation. this is used
for user-initiated requests.
"""
+ start = time.time()
while True:
self.clear_to_send.wait(0.1)
if not self.active:
@@ -1401,6 +1420,8 @@ class Transport (threading.Thread):
if self.clear_to_send.isSet():
break
self.clear_to_send_lock.release()
+ if time.time() > start + self.clear_to_send_timeout:
+ raise SSHException('Key-exchange timed out waiting for key negotiation')
try:
self._send_message(data)
finally:
@@ -1422,7 +1443,7 @@ class Transport (threading.Thread):
if key is None:
raise SSHException('Unknown host key type')
if not key.verify_ssh_sig(self.H, Message(sig)):
- raise SSHException('Signature verification (%s) failed. Boo. Robey should debug this.' % self.host_key_type)
+ raise SSHException('Signature verification (%s) failed.' % self.host_key_type)
self.host_key = key
def _compute_key(self, id, nbytes):
@@ -1446,7 +1467,19 @@ class Transport (threading.Thread):
def _get_cipher(self, name, key, iv):
if name not in self._cipher_info:
raise SSHException('Unknown client cipher ' + name)
- return self._cipher_info[name]['class'].new(key, self._cipher_info[name]['mode'], iv)
+ if name in ('arcfour128', 'arcfour256'):
+ # arcfour cipher
+ cipher = self._cipher_info[name]['class'].new(key)
+ # as per RFC 4345, the first 1536 bytes of keystream
+ # generated by the cipher MUST be discarded
+ cipher.encrypt(" " * 1536)
+ return cipher
+ elif name.endswith("-ctr"):
+ # CTR modes, we need a counter
+ counter = Counter.new(nbits=self._cipher_info[name]['block-size'] * 8, initial_value=util.inflate_long(iv, True))
+ return self._cipher_info[name]['class'].new(key, self._cipher_info[name]['mode'], iv, counter)
+ else:
+ return self._cipher_info[name]['class'].new(key, self._cipher_info[name]['mode'], iv)
def _set_x11_handler(self, handler):
# only called if a channel has turned on x11 forwarding
@@ -1465,13 +1498,13 @@ class Transport (threading.Thread):
self.server_accept_cv.notify()
finally:
self.lock.release()
-
+
def run(self):
# (use the exposed "run" method, because if we specify a thread target
# of a private method, threading.Thread will keep a reference to it
# indefinitely, creating a GC cycle and not letting Transport ever be
- # GC'd. it's a bug in Thread.)
-
+ # GC'd. it's a bug in Thread.)
+
# active=True occurs before the thread is launched, to avoid a race
_active_threads.append(self)
if self.server_mode:
@@ -1587,7 +1620,7 @@ class Transport (threading.Thread):
def _check_banner(self):
# this is slow, but we only have to do it once
- for i in range(5):
+ for i in range(100):
# give them 15 seconds for the first line, then just 2 seconds
# each additional line. (some sites have very high latency.)
if i == 0:
@@ -1896,7 +1929,7 @@ class Transport (threading.Thread):
self.global_response = m
if self.completion_event is not None:
self.completion_event.set()
-
+
def _parse_request_failure(self, m):
self._log(DEBUG, 'Global request denied.')
self.global_response = None
@@ -1985,7 +2018,7 @@ class Transport (threading.Thread):
origin_addr = m.get_string()
origin_port = m.get_int()
reason = self.server_object.check_channel_direct_tcpip_request(
- my_chanid, (origin_addr, origin_port),
+ my_chanid, (origin_addr, origin_port),
(dest_addr, dest_port))
else:
reason = self.server_object.check_channel_request(kind, my_chanid)
@@ -2001,7 +2034,7 @@ class Transport (threading.Thread):
msg.add_string('en')
self._send_message(msg)
return
-
+
chan = Channel(my_chanid)
self.lock.acquire()
try:
diff --git a/paramiko/util.py b/paramiko/util.py
index 8abdc0c..0d6a534 100644
--- a/paramiko/util.py
+++ b/paramiko/util.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -22,6 +22,7 @@ Useful functions used by the rest of paramiko.
from __future__ import generators
+import array
from binascii import hexlify, unhexlify
import sys
import struct
@@ -135,6 +136,8 @@ def safe_string(s):
def bit_length(n):
norm = deflate_long(n, 0)
hbyte = ord(norm[0])
+ if hbyte == 0:
+ return 1
bitlen = len(norm) * 8
while not (hbyte & 0x80):
hbyte <<= 1
@@ -184,10 +187,10 @@ def load_host_keys(filename):
return a compound dict of C{hostname -> keytype ->} L{PKey <paramiko.pkey.PKey>}.
The hostname may be an IP address or DNS name. The keytype will be either
C{"ssh-rsa"} or C{"ssh-dss"}.
-
+
This type of file unfortunately doesn't exist on Windows, but on posix,
it will usually be stored in C{os.path.expanduser("~/.ssh/known_hosts")}.
-
+
Since 1.5.3, this is just a wrapper around L{HostKeys}.
@param filename: name of the file to read host keys from
@@ -268,3 +271,32 @@ def get_logger(name):
return l
+class Counter (object):
+ """Stateful counter for CTR mode crypto"""
+ def __init__(self, nbits, initial_value=1L, overflow=0L):
+ self.blocksize = nbits / 8
+ self.overflow = overflow
+ # start with value - 1 so we don't have to store intermediate values when counting
+ # could the iv be 0?
+ if initial_value == 0:
+ self.value = array.array('c', '\xFF' * self.blocksize)
+ else:
+ x = deflate_long(initial_value - 1, add_sign_padding=False)
+ self.value = array.array('c', '\x00' * (self.blocksize - len(x)) + x)
+
+ def __call__(self):
+ """Increament the counter and return the new value"""
+ i = self.blocksize - 1
+ while i > -1:
+ c = self.value[i] = chr((ord(self.value[i]) + 1) % 256)
+ if c != '\x00':
+ return self.value.tostring()
+ i -= 1
+ # counter reset
+ x = deflate_long(self.overflow, add_sign_padding=False)
+ self.value = array.array('c', '\x00' * (self.blocksize - len(x)) + x)
+ return self.value.tostring()
+
+ def new(cls, nbits, initial_value=1L, overflow=0L):
+ return cls(nbits, initial_value=initial_value, overflow=overflow)
+ new = classmethod(new)
diff --git a/setup.py b/setup.py
index 2041fea..965906f 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2008 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2008 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -41,20 +41,20 @@ try:
except ImportError:
from distutils.core import setup
kw = {}
-
+
if sys.platform == 'darwin':
import setup_helper
setup_helper.install_custom_make_tarball()
setup(name = "paramiko",
- version = "1.7.4",
+ version = "1.7.6",
description = "SSH2 protocol library",
author = "Robey Pointer",
- author_email = "robey@lag.net",
+ author_email = "robeypointer@gmail.com",
url = "http://www.lag.net/paramiko/",
packages = [ 'paramiko' ],
- download_url = 'http://www.lag.net/paramiko/download/paramiko-1.7.4.zip',
+ download_url = 'http://www.lag.net/paramiko/download/paramiko-1.7.6.zip',
license = 'LGPL',
platforms = 'Posix; MacOS X; Windows',
classifiers = [ 'Development Status :: 5 - Production/Stable',
diff --git a/setup_helper.py b/setup_helper.py
index 778d90a..e8f3f2f 100644
--- a/setup_helper.py
+++ b/setup_helper.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/test.py b/test.py
index b7f6c8a..c0e9d15 100755
--- a/test.py
+++ b/test.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/loop.py b/tests/loop.py
index fb6ffae..bdc2f2d 100644
--- a/tests/loop.py
+++ b/tests/loop.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/stub_sftp.py b/tests/stub_sftp.py
index ac292ff..7f1ecc7 100644
--- a/tests/stub_sftp.py
+++ b/tests/stub_sftp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_auth.py b/tests/test_auth.py
index fadd8ca..816e978 100644
--- a/tests/test_auth.py
+++ b/tests/test_auth.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008 Robey Pointer <robey@lag.net>
+# Copyright (C) 2008 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_buffered_pipe.py b/tests/test_buffered_pipe.py
index f96edb8..f285d05 100644
--- a/tests/test_buffered_pipe.py
+++ b/tests/test_buffered_pipe.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_client.py b/tests/test_client.py
index 59cd67c..2f9b9a7 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -31,7 +31,7 @@ import paramiko
class NullServer (paramiko.ServerInterface):
-
+
def get_allowed_auths(self, username):
if username == 'slowdive':
return 'publickey,password'
@@ -46,7 +46,7 @@ class NullServer (paramiko.ServerInterface):
if (key.get_name() == 'ssh-dss') and (hexlify(key.get_fingerprint()) == '4478f0b9a23cc5182009ff755bc1d26c'):
return paramiko.AUTH_SUCCESSFUL
return paramiko.AUTH_FAILED
-
+
def check_channel_request(self, kind, chanid):
return paramiko.OPEN_SUCCEEDED
@@ -81,17 +81,17 @@ class SSHClientTest (unittest.TestCase):
self.ts.add_server_key(host_key)
server = NullServer()
self.ts.start_server(self.event, server)
-
-
+
+
def test_1_client(self):
"""
verify that the SSHClient stuff works too.
"""
host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
public_host_key = paramiko.RSAKey(data=str(host_key))
-
+
self.tc = paramiko.SSHClient()
- self.tc.get_host_keys().add(self.addr, 'ssh-rsa', public_host_key)
+ self.tc.get_host_keys().add('[%s]:%d' % (self.addr, self.port), 'ssh-rsa', public_host_key)
self.tc.connect(self.addr, self.port, username='slowdive', password='pygmalion')
self.event.wait(1.0)
@@ -111,20 +111,20 @@ class SSHClientTest (unittest.TestCase):
self.assertEquals('', stdout.readline())
self.assertEquals('This is on stderr.\n', stderr.readline())
self.assertEquals('', stderr.readline())
-
+
stdin.close()
stdout.close()
stderr.close()
-
+
def test_2_client_dsa(self):
"""
verify that SSHClient works with a DSA key.
"""
host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
public_host_key = paramiko.RSAKey(data=str(host_key))
-
+
self.tc = paramiko.SSHClient()
- self.tc.get_host_keys().add(self.addr, 'ssh-rsa', public_host_key)
+ self.tc.get_host_keys().add('[%s]:%d' % (self.addr, self.port), 'ssh-rsa', public_host_key)
self.tc.connect(self.addr, self.port, username='slowdive', key_filename='tests/test_dss.key')
self.event.wait(1.0)
@@ -144,20 +144,20 @@ class SSHClientTest (unittest.TestCase):
self.assertEquals('', stdout.readline())
self.assertEquals('This is on stderr.\n', stderr.readline())
self.assertEquals('', stderr.readline())
-
+
stdin.close()
stdout.close()
stderr.close()
-
+
def test_3_multiple_key_files(self):
"""
verify that SSHClient accepts and tries multiple key files.
"""
host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
public_host_key = paramiko.RSAKey(data=str(host_key))
-
+
self.tc = paramiko.SSHClient()
- self.tc.get_host_keys().add(self.addr, 'ssh-rsa', public_host_key)
+ self.tc.get_host_keys().add('[%s]:%d' % (self.addr, self.port), 'ssh-rsa', public_host_key)
self.tc.connect(self.addr, self.port, username='slowdive', key_filename=[ 'tests/test_rsa.key', 'tests/test_dss.key' ])
self.event.wait(1.0)
@@ -172,7 +172,7 @@ class SSHClientTest (unittest.TestCase):
"""
host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
public_host_key = paramiko.RSAKey(data=str(host_key))
-
+
self.tc = paramiko.SSHClient()
self.tc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.assertEquals(0, len(self.tc.get_host_keys()))
@@ -184,7 +184,7 @@ class SSHClientTest (unittest.TestCase):
self.assertEquals('slowdive', self.ts.get_username())
self.assertEquals(True, self.ts.is_authenticated())
self.assertEquals(1, len(self.tc.get_host_keys()))
- self.assertEquals(public_host_key, self.tc.get_host_keys()[self.addr]['ssh-rsa'])
+ self.assertEquals(public_host_key, self.tc.get_host_keys()['[%s]:%d' % (self.addr, self.port)]['ssh-rsa'])
def test_5_cleanup(self):
"""
@@ -193,7 +193,7 @@ class SSHClientTest (unittest.TestCase):
"""
host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
public_host_key = paramiko.RSAKey(data=str(host_key))
-
+
self.tc = paramiko.SSHClient()
self.tc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.assertEquals(0, len(self.tc.get_host_keys()))
@@ -202,7 +202,7 @@ class SSHClientTest (unittest.TestCase):
self.event.wait(1.0)
self.assert_(self.event.isSet())
self.assert_(self.ts.is_active())
-
+
p = weakref.ref(self.tc._transport.packetizer)
self.assert_(p() is not None)
del self.tc
@@ -211,4 +211,4 @@ class SSHClientTest (unittest.TestCase):
while (time.time() - st < 5.0) and (p() is not None):
time.sleep(0.1)
self.assert_(p() is None)
-
+
diff --git a/tests/test_file.py b/tests/test_file.py
index d66babf..c539b22 100755
--- a/tests/test_file.py
+++ b/tests/test_file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_hostkeys.py b/tests/test_hostkeys.py
index 28521ba..e28a41d 100644
--- a/tests/test_hostkeys.py
+++ b/tests/test_hostkeys.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2006-2007 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_kex.py b/tests/test_kex.py
index f304275..2ecb757 100644
--- a/tests/test_kex.py
+++ b/tests/test_kex.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_message.py b/tests/test_message.py
index e930f71..7bfd44d 100644
--- a/tests/test_message.py
+++ b/tests/test_message.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_packetizer.py b/tests/test_packetizer.py
index cb6248f..d1eb584 100644
--- a/tests/test_packetizer.py
+++ b/tests/test_packetizer.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_pkey.py b/tests/test_pkey.py
index e591ab1..e40bee1 100644
--- a/tests/test_pkey.py
+++ b/tests/test_pkey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_sftp.py b/tests/test_sftp.py
index edc0599..f9d7270 100755
--- a/tests/test_sftp.py
+++ b/tests/test_sftp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -80,7 +80,7 @@ class SFTPTest (unittest.TestCase):
def init(hostname, username, keyfile, passwd):
global sftp, tc
-
+
t = paramiko.Transport(hostname)
tc = t
try:
@@ -136,7 +136,7 @@ class SFTPTest (unittest.TestCase):
global g_big_file_test
g_big_file_test = onoff
set_big_file_test = staticmethod(set_big_file_test)
-
+
def setUp(self):
global FOLDER
for i in xrange(1000):
@@ -206,7 +206,7 @@ class SFTPTest (unittest.TestCase):
f.close()
finally:
sftp.remove(FOLDER + '/append.txt')
-
+
def test_5_rename(self):
"""
verify that renaming a file works.
@@ -309,7 +309,7 @@ class SFTPTest (unittest.TestCase):
self.assertEqual(stat.st_atime, atime)
# can't really test chown, since we'd have to know a valid uid.
-
+
sftp.truncate(FOLDER + '/special', 512)
stat = sftp.stat(FOLDER + '/special')
self.assertEqual(stat.st_size, 512)
@@ -325,7 +325,7 @@ class SFTPTest (unittest.TestCase):
try:
f.write('x' * 1024)
f.close()
-
+
f = sftp.open(FOLDER + '/special', 'r+')
stat = f.stat()
f.chmod((stat.st_mode & ~0777) | 0600)
@@ -348,16 +348,16 @@ class SFTPTest (unittest.TestCase):
self.assertEqual(stat.st_mtime, mtime)
if sys.platform not in ('win32', 'cygwin'):
self.assertEqual(stat.st_atime, atime)
-
+
# can't really test chown, since we'd have to know a valid uid.
-
+
f.truncate(512)
stat = f.stat()
self.assertEqual(stat.st_size, 512)
f.close()
finally:
sftp.remove(FOLDER + '/special')
-
+
def test_A_readline_seek(self):
"""
create a text file and write a bunch of text into it. then count the lines
@@ -510,7 +510,7 @@ class SFTPTest (unittest.TestCase):
self.assert_(False, 'no exception removing nonexistent subfolder')
except IOError:
pass
-
+
def test_G_chdir(self):
"""
verify that chdir/getcwd work.
@@ -524,7 +524,7 @@ class SFTPTest (unittest.TestCase):
sftp.mkdir('beta')
self.assertEquals(root + FOLDER + '/alpha', sftp.getcwd())
self.assertEquals(['beta'], sftp.listdir('.'))
-
+
sftp.chdir('beta')
f = sftp.open('fish', 'w')
f.write('hello\n')
@@ -554,7 +554,7 @@ class SFTPTest (unittest.TestCase):
"""
import os, warnings
warnings.filterwarnings('ignore', 'tempnam.*')
-
+
localname = os.tempnam()
text = 'All I wanted was a plastic bunny rabbit.\n'
f = open(localname, 'wb')
@@ -564,22 +564,22 @@ class SFTPTest (unittest.TestCase):
def progress_callback(x, y):
saved_progress.append((x, y))
sftp.put(localname, FOLDER + '/bunny.txt', progress_callback)
-
+
f = sftp.open(FOLDER + '/bunny.txt', 'r')
self.assertEquals(text, f.read(128))
f.close()
self.assertEquals((41, 41), saved_progress[-1])
-
+
os.unlink(localname)
localname = os.tempnam()
saved_progress = []
sftp.get(FOLDER + '/bunny.txt', localname, progress_callback)
-
+
f = open(localname, 'rb')
self.assertEquals(text, f.read(128))
f.close()
self.assertEquals((41, 41), saved_progress[-1])
-
+
os.unlink(localname)
sftp.unlink(FOLDER + '/bunny.txt')
@@ -592,7 +592,7 @@ class SFTPTest (unittest.TestCase):
f = sftp.open(FOLDER + '/kitty.txt', 'w')
f.write('here kitty kitty' * 64)
f.close()
-
+
try:
f = sftp.open(FOLDER + '/kitty.txt', 'r')
sum = f.check('sha1')
@@ -612,7 +612,7 @@ class SFTPTest (unittest.TestCase):
"""
f = sftp.open(FOLDER + '/unusual.txt', 'wx')
f.close()
-
+
try:
try:
f = sftp.open(FOLDER + '/unusual.txt', 'wx')
@@ -621,7 +621,7 @@ class SFTPTest (unittest.TestCase):
pass
finally:
sftp.unlink(FOLDER + '/unusual.txt')
-
+
def test_K_utf8(self):
"""
verify that unicode strings are encoded into utf8 correctly.
@@ -629,7 +629,7 @@ class SFTPTest (unittest.TestCase):
f = sftp.open(FOLDER + '/something', 'w')
f.write('okay')
f.close()
-
+
try:
sftp.rename(FOLDER + '/something', FOLDER + u'/\u00fcnic\u00f8de')
sftp.open(FOLDER + '/\xc3\xbcnic\xc3\xb8\x64\x65', 'r')
@@ -637,7 +637,19 @@ class SFTPTest (unittest.TestCase):
self.fail('exception ' + e)
sftp.unlink(FOLDER + '/\xc3\xbcnic\xc3\xb8\x64\x65')
- def test_L_bad_readv(self):
+ def test_L_utf8_chdir(self):
+ sftp.mkdir(FOLDER + u'\u00fcnic\u00f8de')
+ try:
+ sftp.chdir(FOLDER + u'\u00fcnic\u00f8de')
+ f = sftp.open('something', 'w')
+ f.write('okay')
+ f.close()
+ sftp.unlink('something')
+ finally:
+ sftp.chdir(None)
+ sftp.rmdir(FOLDER + u'\u00fcnic\u00f8de')
+
+ def test_M_bad_readv(self):
"""
verify that readv at the end of the file doesn't essplode.
"""
@@ -647,7 +659,7 @@ class SFTPTest (unittest.TestCase):
f = sftp.open(FOLDER + '/zero', 'r')
data = f.readv([(0, 12)])
f.close()
-
+
f = sftp.open(FOLDER + '/zero', 'r')
f.prefetch()
data = f.read(100)
@@ -658,7 +670,7 @@ class SFTPTest (unittest.TestCase):
def XXX_test_M_seek_append(self):
"""
verify that seek does't affect writes during append.
-
+
does not work except through paramiko. :( openssh fails.
"""
f = sftp.open(FOLDER + '/append.txt', 'a')
diff --git a/tests/test_sftp_big.py b/tests/test_sftp_big.py
index c182762..a32a700 100644
--- a/tests/test_sftp_big.py
+++ b/tests/test_sftp_big.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
diff --git a/tests/test_transport.py b/tests/test_transport.py
index 4b52c4f..cea4a1d 100644
--- a/tests/test_transport.py
+++ b/tests/test_transport.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#
@@ -38,6 +38,19 @@ from paramiko.message import Message
from loop import LoopSocket
+LONG_BANNER = """\
+Welcome to the super-fun-land BBS, where our MOTD is the primary thing we
+provide. All rights reserved. Offer void in Tennessee. Stunt drivers were
+used. Do not attempt at home. Some restrictions apply.
+
+Happy birthday to Commie the cat!
+
+Note: An SSH banner may eventually appear.
+
+Maybe.
+"""
+
+
class NullServer (ServerInterface):
paranoid_did_password = False
paranoid_did_public_key = False
@@ -182,6 +195,24 @@ class TransportTest (unittest.TestCase):
self.assertEquals(True, self.tc.is_authenticated())
self.assertEquals(True, self.ts.is_authenticated())
+ def test_3a_long_banner(self):
+ """
+ verify that a long banner doesn't mess up the handshake.
+ """
+ host_key = RSAKey.from_private_key_file('tests/test_rsa.key')
+ public_host_key = RSAKey(data=str(host_key))
+ self.ts.add_server_key(host_key)
+ event = threading.Event()
+ server = NullServer()
+ self.assert_(not event.isSet())
+ self.socks.send(LONG_BANNER)
+ self.ts.start_server(event, server)
+ self.tc.connect(hostkey=public_host_key,
+ username='slowdive', password='pygmalion')
+ event.wait(1.0)
+ self.assert_(event.isSet())
+ self.assert_(self.ts.is_active())
+
def test_4_special(self):
"""
verify that the client can demand odd handshake settings, and can
diff --git a/tests/test_util.py b/tests/test_util.py
index d385bab..3569abf 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
#
# This file is part of paramiko.
#